guile-user
[Top][All Lists]
Advanced

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

Ann: Qi/Shen syntax for guile


From: Kjetil Matheussen
Subject: Ann: Qi/Shen syntax for guile
Date: Thu, 22 May 2014 17:09:46 +0200

Hi, here's a small library I just made:

https://github.com/kmatheussen/fedex2


With it, you can write code like this:

(define-match keep
  [        ] ____ :> '[]
  [A . Rest] Pred :> (cons A (keep Rest Pred)) :where (Pred A)
  [_ . Rest] Pred :> (keep Rest Pred))

(define-match quicksort
  []      :> '[]
  [A . R] :> (append (quicksort (keep R (lambda (B) (>= A B))))
                     (list A)
                     (quicksort (keep R (lambda (B) (< A B))))))

(test (quicksort '[6 8 5 9 3 2 2 1 4 7])
      '[1 2 2 3 4 5 6 7 8 9])

reply via email to

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