scaffolding ready for s9pks

This commit is contained in:
Aaron Greenspan
2019-12-21 16:56:14 -07:00
parent 9153058a7e
commit 0ab1121738
12 changed files with 182 additions and 93 deletions

View File

@@ -6,4 +6,18 @@ import Startlude
(.*) = (.) . (.)
(.**) :: (b -> c) -> (a0 -> a1 -> a2 -> b) -> a0 -> a1 -> a2 -> c
(.**) = (.) . (.*)
(.**) = (.) . (.*)
preimage :: Eq b => (a -> b) -> b -> [a] -> [a]
preimage f target = filter ((== target) . f)
mapFind :: ([a] -> Maybe a) -> (b -> a) -> [b] -> Maybe b
mapFind _ _ [] = Nothing
mapFind finder mapping (b:bs) = let
mB = mapFind finder mapping bs
mA = finder [mapping b]
in case (mB, mA) of
(Just b',_) -> Just b'
(Nothing, Just _) -> Just b
_ -> Nothing