Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,28 @@
|
|||
USING: kernel
|
||||
combinators.short-circuit
|
||||
math math.combinatorics math.ranges
|
||||
sequences
|
||||
qw prettyprint ;
|
||||
IN: rosetta.dinesman
|
||||
|
||||
: /= ( x y -- ? ) = not ;
|
||||
: fifth ( seq -- elt ) 4 swap nth ;
|
||||
|
||||
: meets-constraints? ( seq -- ? )
|
||||
{
|
||||
[ first 5 /= ] ! Baker does not live on the top floor.
|
||||
[ second 1 /= ] ! Cooper does not live on the bottom floor.
|
||||
[ third { 1 5 } member? not ] ! Fletcher does not live on either the top or bottom floor.
|
||||
[ [ fourth ] [ second ] bi > ] ! Miller lives on a higher floor than does Cooper.
|
||||
[ [ fifth ] [ third ] bi - abs 1 /= ] ! Smith does not live on a floor adjacent to Fletcher's.
|
||||
[ [ third ] [ second ] bi - abs 1 /= ] ! Fletcher does not live on a floor adjacent to Cooper's.
|
||||
} 1&& ;
|
||||
|
||||
: solutions ( -- seq )
|
||||
5 [1,b] all-permutations [ meets-constraints? ] filter ;
|
||||
|
||||
: >names ( seq -- seq )
|
||||
[ qw{ baker cooper fletcher miller smith } nth swap 2array ] map-index ;
|
||||
|
||||
: dinesman ( -- )
|
||||
solutions [ >names . ] each ;
|
||||
Loading…
Add table
Add a link
Reference in a new issue