In newLisp, the following code
Code: Select all
(define (f a (b (define (f a) "D"))) a)
(println (f "A" 1) (f "B") (f "C"))
Code: Select all
(define (f a (b (define (f a) "D"))) (println "") a)
(f "A")
Code: Select all
--- cannot execute: restart shell ---
In Common Lisp, Clojure and Ruby the following pieces of code seem to be equivalent:
Code: Select all
(defun f (a &optional (b (defun f (a) "D"))) a)
(format t "~a~a~a" (f "A" 1) (f "B") (f "C"))
Code: Select all
(defn f ([a] (defn f [a] "D") a) ([a b] a))
(println (str (f "A" 1) (f "B") (f "C")))
Code: Select all
def f(a, b = def f(a); "D"; end); a; end
p f("A", 1) + f("B") + f("C")