[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#30237: Generalizing ‘and=>’
From: |
Mathieu Lirzin |
Subject: |
bug#30237: Generalizing ‘and=>’ |
Date: |
Wed, 24 Jan 2018 13:10:20 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux) |
Hello,
Here is a proposal for generalizing ‘and=>’ to a pipeline of procedures.
It acts like a “bind” operator in an ad-hoc “Maybe” monad which uses #f
to represent the absence of value. Not sure if it is useful in
practice, but it feels like a natural generalization.
The current definition is the following:
(define (and=> value procedure)
(and value (procedure value)))
Here is my proposition:
(define-syntax and=>
(syntax-rules ()
((_) #t)
((_ val) val)
((_ val proc)
(and val (proc val)))
((_ val proc proc* ...)
(and=> (and val (proc val)) proc* ...))))
Let me know if such change is welcome or not, so I can provide a
complete patch including documentation. Even if it's a small change, I
would like to assign copyright for future changes.
Thanks.
--
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761 070D 0ADE E100 9460 4D37
- bug#30237: Generalizing ‘and=>’,
Mathieu Lirzin <=