36 lines
771 B
Plaintext
36 lines
771 B
Plaintext
$ENTRY Go {
|
|
= <Each Show (<Blocks>) <Words>>;
|
|
};
|
|
|
|
Each {
|
|
s.F (e.Arg) = ;
|
|
s.F (e.Arg) t.I e.R = <Mu s.F t.I e.Arg> <Each s.F (e.Arg) e.R>;
|
|
};
|
|
|
|
Show {
|
|
(e.Word) e.Blocks = <Prout e.Word ': ' <CanMakeWord (e.Word) e.Blocks>>;
|
|
};
|
|
|
|
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');
|
|
};
|
|
|
|
CanMakeWord {
|
|
(e.Word) e.Blocks = <CanMakeWord1 (<Upper e.Word>) e.Blocks>;
|
|
}
|
|
|
|
CanMakeWord1 {
|
|
() e.Blocks = T;
|
|
(s.Ltr e.Word) e.Blocks1 (e.X s.Ltr e.Y) e.Blocks2
|
|
= <CanMakeWord1 (e.Word) e.Blocks1 e.Blocks2>;
|
|
(e.Word) e.Blocks = F;
|
|
};
|