Find the missing permutation: Difference between revisions

m
(Added Kotlin)
Line 151:
<lang AppleScript>use framework "Foundation" -- ( sort )
 
-- RAREST LETTER IN EACH COLUMN -----------------------------------------------
on run
-- Rarest letter in each column
intercalate("", ¬
map(compose({¬
Line 166 ⟶ 164:
"CBAD ABDC ADBC BDCA DCBA BACD " & ¬
"BADC BDAC CBDA DBCA DCAB"))))))
 
--> "DBAC"
end run
 
 
-- GENERIC FUNCTIONS ----------------------------------------------------------
 
-- compose :: [(a -> a)] -> (a -> a)
Line 182 ⟶ 180:
end lambda
end script
 
foldl(result, x, fs)
end lambda
Line 197 ⟶ 195:
end lambda
end script
 
map(row, xss)
end lambda
end script
 
map(column, item 1 of xss)
end transpose
Line 218 ⟶ 216:
end lambda
end script
 
groupBy(eq, xs)
end group
 
-- minimumBy :: (a -> a -> Ordering) -> [a] -> a
on minimumBy(f, xs)
set mf to mReturn(f)
Line 236 ⟶ 234:
end lambda
end script
 
foldl(min, missing value, xs)
end minimumBy
Line 276 ⟶ 274:
on groupBy(f, xs)
set mf to mReturn(f)
 
script enGroup
on lambda(a, x)
Line 284 ⟶ 282:
set h to missing value
end if
 
if h is not missing value and mf's lambda(h, x) then
{active:(active of a) & x, sofar:sofar of a}
Line 292 ⟶ 290:
end lambda
end script
 
if length of xs > 0 then
set dct to foldl(enGroup, {active:{item 1 of xs}, sofar:{}}, tail(xs))
Line 373 ⟶ 371:
end foldl
 
-- Lift 2nd class handler function into 1st class script wrapper
-- mReturn :: Handler -> Script
on mReturn(f)
9,659

edits