diff options
author | Maxime Devos <maximedevos@telenet.be> | 2021-07-02 23:11:23 +0200 |
---|---|---|
committer | Maxime Devos <maximedevos@telenet.be> | 2021-09-21 12:08:47 +0200 |
commit | dca2945177d21560fa9c5907103f44ed0d90de19 (patch) | |
tree | 20828490a24d9b34cd994805544f2f0a4f632549 /gnu/gnunet/utils | |
parent | 8250f73a805e20ef0bc7a6d1218bdce9e5840c2b (diff) | |
parent | 03527f83517dcbec20f084c02a04b2e27095071a (diff) | |
download | gnunet-scheme-dca2945177d21560fa9c5907103f44ed0d90de19.tar.gz gnunet-scheme-dca2945177d21560fa9c5907103f44ed0d90de19.zip |
Merge branch 'master' into proper-mq
The 'hat-let' fix wil be used.
Diffstat (limited to 'gnu/gnunet/utils')
-rw-r--r-- | gnu/gnunet/utils/hat-let.scm | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gnu/gnunet/utils/hat-let.scm b/gnu/gnunet/utils/hat-let.scm index 9382867..181ed5a 100644 --- a/gnu/gnunet/utils/hat-let.scm +++ b/gnu/gnunet/utils/hat-let.scm | |||
@@ -30,8 +30,10 @@ | |||
30 | ;; with <--. | 30 | ;; with <--. |
31 | ;; * (2 1): Refer to '_' as a symbol, not as the _ from | 31 | ;; * (2 1): Refer to '_' as a symbol, not as the _ from |
32 | ;; (rnrs base) | 32 | ;; (rnrs base) |
33 | ;; * (2 2): Make (! (procedure-name argument) code code* ...) | ||
34 | ;; usable. | ||
33 | 35 | ||
34 | (library (gnu gnunet utils hat-let (2 1)) | 36 | (library (gnu gnunet utils hat-let (2 2)) |
35 | (export let^) | 37 | (export let^) |
36 | ;; Avoid letting users of (gnu gnunet utils hat-let) | 38 | ;; Avoid letting users of (gnu gnunet utils hat-let) |
37 | ;; having to import _ from (rnrs base). | 39 | ;; having to import _ from (rnrs base). |
@@ -50,15 +52,15 @@ | |||
50 | (if x | 52 | (if x |
51 | (begin esc esc* ...) | 53 | (begin esc esc* ...) |
52 | (let^ (etc ...) code ...))) | 54 | (let^ (etc ...) code ...))) |
53 | ;; Bind y to x | ||
54 | ((: ((! x y) etc ...) code ...) | ||
55 | (let ((x y)) | ||
56 | (let^ (etc ...) code ...))) | ||
57 | ;; Define a procedure | 55 | ;; Define a procedure |
58 | ((: ((! (x . args) body ...) etc ...) code ...) | 56 | ((: ((! (x . args) body ...) etc ...) code ...) |
59 | (let ((x (lambda args body ...))) | 57 | (let ((x (lambda args body ...))) |
60 | (let^ (etc ...) | 58 | (let^ (etc ...) |
61 | code ...))) | 59 | code ...))) |
60 | ;; Bind y to x | ||
61 | ((: ((! x y) etc ...) code ...) | ||
62 | (let ((x y)) | ||
63 | (let^ (etc ...) code ...))) | ||
62 | ;; Assert it is true! | 64 | ;; Assert it is true! |
63 | ((: ((!! x) etc ...) code ...) | 65 | ((: ((!! x) etc ...) code ...) |
64 | (begin | 66 | (begin |