ABC problem: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add Refal) |
Not a robot (talk | contribs) (Add SETL) |
||
Line 9,910: | Line 9,910: | ||
end repeat</syntaxhighlight> |
end repeat</syntaxhighlight> |
||
=={{header|SETL}}== |
|||
<syntaxhighlight lang="setl">program ABC_problem; |
|||
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"]; |
|||
loop for word in words do |
|||
print(rpad(word, 8), can_make_word(word, blocks)); |
|||
end loop; |
|||
proc can_make_word(word, blocks); |
|||
loop for letter in word do |
|||
if exists block = blocks(i) | to_upper(letter) in block then |
|||
blocks(i) := ""; |
|||
else |
|||
return false; |
|||
end if; |
|||
end loop; |
|||
return true; |
|||
end proc; |
|||
end program;</syntaxhighlight> |
|||
{{out}} |
|||
<pre>A #T |
|||
BARK #T |
|||
BOOK #F |
|||
treat #T |
|||
common #F |
|||
Squad #T |
|||
CoNfUsE #T</pre> |
|||
=={{header|SequenceL}}== |
=={{header|SequenceL}}== |
||
===Recursive Search Version=== |
===Recursive Search Version=== |