blocks: map [ [B O] [X K] [D Q] [C P] [N A] [G T] [R E] [T G] [Q D] [F S] [J W] [H U] [V I] [A N] [O B] [E R] [F S] [L Y] [P C] [Z M] ] => [ join map & => [to :string &]] charInBlock: function [ch,bl][ loop.with:'i bl 'b -> if contains? b upper ch [ return i ] return ø ] canMakeWord?: function [wrd][ ref: new blocks loop split wrd 'chr [ cib: charInBlock chr ref switch cib = ø [ return false ] [ ref: remove ref .index cib ] ] return true ] loop ["A" "BaRk" "bOoK" "tReAt" "CoMmOn" "SqUaD" "cONfUsE"] 'wrd -> print [wrd "=>" canMakeWord? wrd]