83 lines
2.5 KiB
Text
83 lines
2.5 KiB
Text
( (English Swede Dane Norwegian German,)
|
|
(red green white yellow blue,(red.English.))
|
|
(dog birds cats horse zebra,(dog.?.Swede.))
|
|
( tea coffee milk beer water
|
|
, (tea.?.?.Dane.) (coffee.?.green.?.)
|
|
)
|
|
( "Pall Mall" Dunhill Blend "Blue Master" Prince
|
|
, ("Blue Master".beer.?.?.?.)
|
|
("Pall Mall".?.birds.?.?.)
|
|
(Dunhill.?.?.yellow.?.)
|
|
(Prince.?.?.?.German.)
|
|
)
|
|
( 1 2 3 4 5
|
|
, (3.?.milk.?.?.?.) (1.?.?.?.?.Norwegian.)
|
|
)
|
|
: ?properties
|
|
& ( relations
|
|
= next leftOf
|
|
. ( next
|
|
= a b A B
|
|
. !arg:(?S,?A,?B)
|
|
& !S:? (?a.!A) ?:? (?b.!B) ?
|
|
& (!a+1:!b|!b+1:!a)
|
|
)
|
|
& ( leftOf
|
|
= a b A B
|
|
. !arg:(?S,?A,?B)
|
|
& !S:? (?a.!A) ?:? (?b.!B) ?
|
|
& !a+1:!b
|
|
)
|
|
& leftOf
|
|
$ (!arg,(?.?.?.green.?.),(?.?.?.white.?.))
|
|
& next$(!arg,(Blend.?.?.?.?.),(?.?.cats.?.?.))
|
|
& next
|
|
$ (!arg,(?.?.horse.?.?.),(Dunhill.?.?.?.?.))
|
|
& next
|
|
$ (!arg,(?.?.?.?.Norwegian.),(?.?.?.blue.?.))
|
|
& next$(!arg,(?.water.?.?.?.),(Blend.?.?.?.?.))
|
|
)
|
|
& ( props
|
|
= a constraint constraints house houses
|
|
, remainingToDo shavedToDo toDo value values z
|
|
. !arg:(?toDo.?shavedToDo.?house.?houses)
|
|
& ( !toDo:(?values,?constraints) ?remainingToDo
|
|
& !values
|
|
: ( ?a
|
|
( %@?value
|
|
& !constraints
|
|
: ( ?
|
|
( !value
|
|
. ?constraint
|
|
& !house:!constraint
|
|
)
|
|
?
|
|
| ~( ?
|
|
( ?
|
|
. ?constraint
|
|
& !house:!constraint
|
|
)
|
|
?
|
|
| ? (!value.?) ?
|
|
)
|
|
)
|
|
)
|
|
( ?z
|
|
& props
|
|
$ ( !remainingToDo
|
|
. !shavedToDo (!a !z,!constraints)
|
|
. (!value.!house)
|
|
. !houses
|
|
)
|
|
)
|
|
|
|
|
& relations$!houses
|
|
& out$(Solution !houses)
|
|
)
|
|
| !toDo:
|
|
& props$(!shavedToDo...!house !houses)
|
|
)
|
|
)
|
|
& props$(!properties...)
|
|
& done
|
|
);
|