Find the missing permutation: Difference between revisions
m
→{{header|AppleScript}}
(Added Kotlin) |
|||
Line 151:
<lang AppleScript>use framework "Foundation" -- ( sort )
-- RAREST LETTER IN EACH COLUMN -----------------------------------------------
on run
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)
|