to join :delimiter :list [:result []] output cond [ [ [empty? :list] :result ] [ [empty? :result] (join :delimiter butfirst :list first :list) ] [ else (join :delimiter butfirst :list (word :result :delimiter first :list)) ] ] end to quibble :list local "length make "length count :list make "text ( ifelse [:length <= 2] [ (join "\ and\ :list) ] [ (join "\ and\ (sentence join ",\ butlast :list last :list)) ]) output ifelse [empty? :text] "\{\} [(word "\{ :text "\})] end foreach [ [] [ABC] [ABC DEF] [ABC DEF G H] ] [ print quibble ? ] bye