X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=gCons.icl;h=6e5aaa52d14b48efc5685f319005e369559605dc;hb=184c730e7c9ab350be853218f5e1f9b8866531ce;hp=3f13a7df19d359da06d0d3e9497e91326fe280f0;hpb=8316870cacd21b19badf032f3b8189bdd54eb1e3;p=mTask.git diff --git a/gCons.icl b/gCons.icl index 3f13a7d..6e5aaa5 100644 --- a/gCons.icl +++ b/gCons.icl @@ -22,6 +22,7 @@ consName{|Int|} i = toString i consName{|Bool|} b = toString b consName{|Char|} c = toString c consName{|String|} s = s +consName{|[]|} _ _ = "[]" consName{|(->)|} f g x = g (x undef) generic consIndex a :: a -> Int @@ -35,9 +36,10 @@ consIndex{|Int|} i = i consIndex{|Bool|} b = if b 1 0 consIndex{|Char|} c = toInt c consIndex{|String|} _ = 0 +consIndex{|[]|} _ _ = 0 generic conses a :: [a] -conses{|CONS|} f = map CONS f +conses{|CONS|} f = [CONS (hd f)] conses{|UNIT|} = [UNIT] conses{|PAIR|} f g = [] conses{|EITHER|} f g = map LEFT f ++ map RIGHT g @@ -56,4 +58,4 @@ conses{|[!!]|} _ = [[!!]] conses{|{}|} _ = [{}] conses{|{!}|} _ = [{!}] conses{|()|} = [()] - +conses{|(->)|} _ _ = [const undef]