From ea0f6a34431395eebb1ffbb06fbe61685801209b Mon Sep 17 00:00:00 2001 From: Damien MATTEI Date: Tue, 2 Apr 2024 14:19:31 +0200 Subject: [PATCH] := operator --- Scheme+.scm | 4 ++-- assignment.scm | 14 ++++++++++++++ def.scm | 16 ++++++++++++++++ operation-redux.scm | 4 ++-- 4 files changed, 34 insertions(+), 4 deletions(-) diff --git a/Scheme+.scm b/Scheme+.scm index a9717ba..dbd262d 100644 --- a/Scheme+.scm +++ b/Scheme+.scm @@ -118,9 +118,9 @@ def $bracket-apply$ $bracket-apply$next - <- ← + <- ← := -> → - <+ ⥆ + <+ ⥆ :+ +> ⥅ declare $> $+> diff --git a/assignment.scm b/assignment.scm index 80141c0..8e869ba 100644 --- a/assignment.scm +++ b/assignment.scm @@ -240,6 +240,20 @@ ((_ var ...) (<- var ...)))) +;; scheme@(guile-user)> {x :+ 7} +;; scheme@(guile-user)> x +;; $1 = 7 +;; scheme@(guile-user)> {x := "hello"} +;; scheme@(guile-user)> x +;; $2 = "hello" + +(define-syntax := + + (syntax-rules () + + ((_ var ...) (<- var ...)))) + + ;; (declare x y z) ;; {(x y z) {x :+ 7} +;; scheme@(guile-user)> x +;; $1 = 7 +;; scheme@(guile-user)> {x := "hello"} +;; scheme@(guile-user)> x +;; $2 = "hello" + +(define-syntax :+ + (syntax-rules () + + ((_ var ...) (<+ var ...)))) + + + + ;; > {(values 2 4 5) +> (x y z) +> (u v w) +> (a b c)} ;; 2 ;; 4 diff --git a/operation-redux.scm b/operation-redux.scm index 0b523fb..f84978e 100644 --- a/operation-redux.scm +++ b/operation-redux.scm @@ -17,8 +17,8 @@ ;;(list 'dummy) ;; can keep the good order in case of non left-right assocciative operators.(odd? reverse them) - (<- -> ← → ⇜ ⇝) - (<+ +> ⥆ ⥅) + (<- -> ← → := ⇜ ⇝) + (<+ +> ⥆ ⥅ :+) ) )