Some additional patterns have been added to the prelude.
authorimode <immediate.mode@gmail.com>
Thu, 13 Dec 2018 20:05:17 +0000 (12:05 -0800)
committerimode <immediate.mode@gmail.com>
Thu, 13 Dec 2018 20:05:17 +0000 (12:05 -0800)
prelude.modal

index c993f3d..4743668 100644 (file)
@@ -8,14 +8,17 @@ def (?x * ?y) (multiply ?x ?y)
 (factorial (1))      -> (1)
 (factorial (num ?x)) -> ((num ?x) * (factorial ((num ?x) - (1))))
 
-(fold (?f) ?i (nil))     -> (?f ?i)
-(fold (?f) ?i (?h : ?t)) -> (?f ?h fold (?f) ?i ?t)
+(length (nil))        -> (0);
+(length (?h : (nil))) -> (1);
+(length (?h : ?t))    -> ((1) + (length ?t)));
 
-(prepend ?x (nil))     -> (?x : (nil))
-(prepend ?x (?h : ?t)) -> (?x : (?h : ?t))
+(contains ?x (nil))     -> (false);
+(contains ?x (?x : ?t)) -> (true);
+(contains ?x (?h : ?t)) -> (contains ?x ?t);
 
-(hello ?x) -> ((Hello,) : ((space) : ?x))
-world      -> ((world!) : (nil))
-intro      -> (hello (world))
+(fold (?f) ?i (nil))       -> (?i);
+(fold (?f) ?i (?h : (nil))) -> (?f ?h ?i);
+(fold (?f) ?i (?h : ?t))   -> (?f ?h fold (?f) ?i ?t)
 
-fold (display) (newline) (prepend (newline) (intro))
+(prepend ?x (nil))     -> (?x : (nil))
+(prepend ?x (?h : ?t)) -> (?x : (?h : ?t))