match/equality

master
cynic 3 years ago
parent 6b8f64648a
commit 98747e6df3
  1. 4
      lib.py
  2. 11
      test.klambda

@ -53,6 +53,10 @@ def execute(ctx):
return idspace[subs[1]]
elif ctx[0] == _ident("+"):
return (subs[1][0], subs[1][1]+subs[2][1])
elif ctx[0] == _ident("=="):
return ("number", 1.0 if subs[1] == subs[2] else 0.0)
elif ctx[0] == _ident("="):
return ("number", 1.0 if str(float(subs[1][1])) == str(float(subs[2][1])) else 0.0)
elif ctx[0] == _ident("defun"):
funcspace[subs[1]] = subs[2]
return funcspace[subs[1]]

@ -1,22 +1,21 @@
(defun spit
(id miracle
"builtins" "print" (id $1)
)
"builtins" "print" (id $1))
)
(defun input
(id miracle
"builtins" "input" ("")
)
"builtins" "input" (""))
)
(defun thesis
(id spit
("this language belongs to makise kurisu. there are many like it, but this one is hers.")
)
("this language belongs to makise kurisu. there are many like it, but this one is hers."))
)
(def a (id (id "desu")))
(spit
("lol swej" (+ 9000 1) a)
)
(spit ((cond (= "10" (+ 1 9)) "same" "not same")))
(cond ("", (+ 0 1))
(id spit ("one"))
(id spit ("zero"))

Loading…
Cancel
Save