|
Suggestion: ephemeron-case
Daphne Preston-Kendal
(04 Feb 2025 10:08 UTC)
|
||
|
Re: Suggestion: ephemeron-case
John Cowan
(04 Feb 2025 11:35 UTC)
|
||
|
Re: Suggestion: ephemeron-case
Vincent Manis (he/him)
(04 Feb 2025 19:38 UTC)
|
||
|
Re: Suggestion: ephemeron-case
Marc Nieper-Wißkirchen
(05 Feb 2025 15:12 UTC)
|
||
|
Re: Suggestion: ephemeron-case
Daphne Preston-Kendal
(05 Feb 2025 15:30 UTC)
|
||
|
Re: Suggestion: ephemeron-case
Marc Nieper-Wißkirchen
(05 Feb 2025 18:04 UTC)
|
||
|
Re: Suggestion: ephemeron-case
Daphne Preston-Kendal
(05 Feb 2025 18:16 UTC)
|
||
|
(missing)
|
||
|
Fwd: Suggestion: ephemeron-case
Marc Nieper-Wißkirchen
(16 Mar 2025 13:19 UTC)
|
||
|
Re: Suggestion: ephemeron-case
Marc Nieper-Wißkirchen
(12 May 2025 11:51 UTC)
|
||
|
Re: Suggestion: ephemeron-case
Arthur A. Gleckler
(10 Jun 2025 23:16 UTC)
|
||
|
Re: Suggestion: ephemeron-case
Daphne Preston-Kendal
(03 Aug 2025 09:38 UTC)
|
||
|
Re: Suggestion: ephemeron-case
Marc Nieper-Wißkirchen
(03 Aug 2025 15:29 UTC)
|
||
|
Re: Suggestion: ephemeron-case
Marc Nieper-Wißkirchen
(03 Aug 2025 15:30 UTC)
|
||
|
Re: Suggestion: ephemeron-case Daphne Preston-Kendal (09 Oct 2025 12:34 UTC)
|
||
|
Re: Suggestion: ephemeron-case
Marc Nieper-Wißkirchen
(09 Oct 2025 13:24 UTC)
|
||
|
Usefulness of reference-barrier
Daphne Preston-Kendal
(12 Oct 2025 20:16 UTC)
|
||
|
Re: Usefulness of reference-barrier
Marc Nieper-Wißkirchen
(13 Oct 2025 05:58 UTC)
|
||
|
Re: Usefulness of reference-barrier
Marc Nieper-Wißkirchen
(13 Oct 2025 07:21 UTC)
|
||
|
Re: Usefulness of reference-barrier
Marc Nieper-Wißkirchen
(13 Oct 2025 11:17 UTC)
|
||
|
Re: Usefulness of reference-barrier
Marc Nieper-Wißkirchen
(22 Oct 2025 07:18 UTC)
|
||
|
Re: Usefulness of reference-barrier
Daphne Preston-Kendal
(30 Oct 2025 22:46 UTC)
|
||
|
Re: Usefulness of reference-barrier
Marc Nieper-Wißkirchen
(31 Oct 2025 07:50 UTC)
|
||
|
Re: Usefulness of reference-barrier
Daphne Preston-Kendal
(30 Oct 2025 23:03 UTC)
|
||
|
Re: Usefulness of reference-barrier
Marc Nieper-Wißkirchen
(31 Oct 2025 08:02 UTC)
|
||
|
Re: Usefulness of reference-barrier
Marc Nieper-Wißkirchen
(04 Nov 2025 18:57 UTC)
|
||
> Am So., 3. Aug. 2025 um 17:29 Uhr schrieb Marc Nieper-Wißkirchen
> <xxxxxx@gmail.com>:
>>
>> Maybe I don't understand the semantics of your ephemeron-case form.
>> Reading your first post, there does not seem to be a reference barrier
>> on the key in the broken path. Can you give a syntax-case definition
>> of ephemeron case?
(define-syntax ephemeron-case
(syntax-rules (else)
((_ eph-expr
((k-id . v-id) expr_0 expr_1 ...)
(else broken-expr_0 broken-expr_1 ...))
(let* ((eph eph-expr)
(k (ephemeron-key eph))
(v (ephemeron-value eph))) ; why has this name been changed? grr
(if (ephemeron-broken? eph)
(begin broken-expr_0 broken-expr_1 ...)
(let-syntax ((k-id (identifier-syntax k))
(v-id (identifier-syntax v)))
(dynamic-wind
(lambda () #f)
(lambda () expr_0 expr_1 ...)
(lambda () (reference-barrier k)))))))))
> On 3 Aug 2025, at 17:30, Marc Nieper-Wißkirchen <xxxxxx@gmail.com> wrote:
>
> PS And maybe give a simple example of how a user would typically use it.
(define (ephemeron-alist-ref ephal key)
(let loop ((more ephal))
(if (null? more)
(assertion-violation 'ephemeron-alist-ref "nothing found for key" ephal)
(ephemeron-case (car ephal)
((found-key . value)
(if (eqv? found-key value)
value
(loop (cdr more))))
(else (loop (cdr more)))))))
Daphne