X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=yard.icl;h=14433251626c24ef08942b652cea0199616d7f7b;hb=4766205e7035a58c8a1fa1557b6e14577ed26f32;hp=59b4e8ce83691255f86cbe90191cc07e2f9e519f;hpb=89c1b0d0eb0851e93ae19ab934033af3ec50518f;p=cc1516.git diff --git a/yard.icl b/yard.icl index 59b4e8c..1443325 100644 --- a/yard.icl +++ b/yard.icl @@ -1,8 +1,9 @@ implementation module yard import StdTuple -from StdClass import Eq +import StdClass import Data.Functor +import Data.Either import Control.Monad import Control.Applicative from Data.Func import $ @@ -44,10 +45,10 @@ top = Parser \i -> case i of [x:xs] = (Right x, xs) satisfy :: (a -> Bool) -> Parser a a -satisfy f = one >>= \r -> if (f r) (return r) fail +satisfy f = top >>= \r -> if (f r) (return r) fail item :: a -> Parser a a | Eq a item a = satisfy ((==)a) list :: [a] -> Parser a [a] | Eq a -list as = mapM item as \ No newline at end of file +list as = mapM item as