#lang transd MainModule: { blocks: ["BO", "XK", "DQ", "CP", "NA", "GT", "RE", "TG", "QD", "FS", "JW", "HU", "VI", "AN", "OB", "ER", "FS", "LY", "PC", "ZM"], words: ["A","BARK","BOOK","TREAT","COMMON","SQUAD","CONFUSE"], testMake: Lambda Bool>(λ w String() v Vector() locals: c (toupper (subn w 0)) (for bl in v do (if (contains bl c) (if (== (size w) 1) (ret true)) (if (exec testMake (sub w 1) (erase (cp v) @idx)) (ret true))) ) (ret false) ), _start: (lambda (for word in words do (lout :boolalpha word " : " (exec testMake word blocks)) ) ) }