Update all new Tasks
This commit is contained in:
parent
00a190b0a6
commit
91df62d461
5697 changed files with 93386 additions and 804 deletions
15
Task/Amb/SETL/amb-1.setl
Normal file
15
Task/Amb/SETL/amb-1.setl
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
program amb;
|
||||
|
||||
sets := unstr('[{the that a} {frog elephant thing} {walked treaded grows} {slowly quickly}]');
|
||||
|
||||
words := [amb(words): words in sets];
|
||||
if exists lWord = words(i), rWord in {words(i+1)} |
|
||||
lWord(#lWord) /= rWord(1) then
|
||||
fail;
|
||||
end if;
|
||||
|
||||
proc amb(words);
|
||||
return arb {word in words | ok};
|
||||
end proc;
|
||||
|
||||
end program;
|
||||
26
Task/Amb/SETL/amb-2.setl
Normal file
26
Task/Amb/SETL/amb-2.setl
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
program amb;
|
||||
|
||||
sets := unstr('[{the that a} {frog elephant thing} {walked treaded grows} {slowly quickly}]');
|
||||
|
||||
print(amb(sets));
|
||||
|
||||
proc amb(sets);
|
||||
return amb1([], {}, sets);
|
||||
end proc;
|
||||
|
||||
proc amb1(prev, mbLast, sets);
|
||||
if sets = [] then
|
||||
return prev;
|
||||
else
|
||||
words fromb sets;
|
||||
if exists word in words |
|
||||
(forall last in mbLast |
|
||||
last(#last) = word(1)) and
|
||||
(exists sentence in {amb1(prev with word, {word}, sets)} |
|
||||
true) then
|
||||
return sentence;
|
||||
end if;
|
||||
end if;
|
||||
end proc;
|
||||
|
||||
end program;
|
||||
Loading…
Add table
Add a link
Reference in a new issue