June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
20
Task/Comma-quibbling/Factor/comma-quibbling.factor
Normal file
20
Task/Comma-quibbling/Factor/comma-quibbling.factor
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
USING: arrays combinators io kernel qw sequences ;
|
||||
IN: rosetta-code.comma-quibble
|
||||
|
||||
: wrap ( str -- {str} ) "{" prepend "}" append ;
|
||||
: quibble-pair ( seq -- str ) " and " join wrap ;
|
||||
: quibble-list ( seq -- str )
|
||||
[ but-last ] [ last ] bi [ ", " join ] dip 2array
|
||||
quibble-pair ;
|
||||
: comma-quibble ( seq -- ) dup length
|
||||
{
|
||||
{ 0 [ drop "{}" ] }
|
||||
{ 1 [ first wrap ] }
|
||||
{ 2 [ quibble-pair ] }
|
||||
[ drop quibble-list ]
|
||||
} case print ;
|
||||
|
||||
{ } comma-quibble
|
||||
qw{ ABC } comma-quibble
|
||||
qw{ ABC DEF } comma-quibble
|
||||
qw{ ABC DEF G H } comma-quibble
|
||||
Loading…
Add table
Add a link
Reference in a new issue