From 98747e6df3aca939f5cc0edfaa81d042334ad2c6 Mon Sep 17 00:00:00 2001 From: cynic Date: Fri, 16 Sep 2022 13:02:01 -0400 Subject: [PATCH] match/equality --- lib.py | 4 ++++ test.klambda | 11 +++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/lib.py b/lib.py index 72e67c2..28659eb 100644 --- a/lib.py +++ b/lib.py @@ -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]] diff --git a/test.klambda b/test.klambda index 17d53f6..f0aae34 100644 --- a/test.klambda +++ b/test.klambda @@ -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"))