guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

comparator in match pattern


From: Damien Mattei
Subject: comparator in match pattern
Date: Wed, 28 Jun 2023 10:44:03 +0200

hello

does it exists in Guile something like == in Racket,
documented here:
https://docs.racket-lang.org/reference/match.html#%28form._%28%28lib._racket%2Fmatch..rkt%29._~3d~3d%29%29

that allows some code like that:

(match (list container index1-or-keyword index2-or-keyword)

          ((list c (== /) (== /)) (displayln "T[/ /]"))
          ((list c i1 (== /)) (displayln "T[i1 /]"))
          ((list c (== /) i2) (displayln "T[/ i2]"))
          ((list c i1 i2) (let ((value expr)) ;; to avoid compute it twice

                ;; normal case
                (if (vector? c)
                    (function-array-n-dim-set! c value (reverse (list
i1 i2))) ;;(array-n-dim-set! array value i1 i2)
                    (array-set! c i1 i2 value))

                value)))

Regards,

Damien



reply via email to

[Prev in Thread] Current Thread [Next in Thread]