(define-constant fold ([c n ->'Y [i l -> l n [e r -> c e (i r)]]])) (define-constant map ([f ->'fold [e a ->'cell (f e) a] 'nil])) (define-constant append (['flip ('fold 'cell)])) (define-constant concat (['fold 'append 'nil])) ; Other stuff (define-constant flip ([f b a -> f a b])) (define-constant doublelist (['Y [i l -> l 'nil [e r ->'cell e ('cell e (i r))]]])) (define-constant triplelist (['Y [i l -> l 'nil [e r ->'cell e ('cell e ('cell e (i r)))]]])) (define-constant max ([n m ->'compare n m m m n]))
- Sami Losoi