;; -*- Mode: Irken -*- (define (eq? a b) (%%cexp ('a 'a -> bool) "%0==%1" a b)) (define (+ a b) (%%cexp (int int -> int) "%0+%1" a b)) (define (kons x l) (:kons x l)) (define (klength l) (define loop (:nil) n -> n (:kons _ tl) n -> (loop tl (+ n 1)) ) (loop l 0) ) (klength (kons 1 (kons 2 (kons 3 (:nil)))))