[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Defining new Scheme predicates
From: |
Urs Liska |
Subject: |
Re: Defining new Scheme predicates |
Date: |
Mon, 7 Nov 2016 11:03:23 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 |
Am 07.11.2016 um 09:57 schrieb Richard Shann:
> On Mon, 2016-11-07 at 06:45 +0100, Urs Liska wrote:
>> Am 7. November 2016 01:20:23 MEZ, schrieb Andrew Bernard <address@hidden>:
>>> Hi Simon,
>>>
>>> Thanks! Exactly perfect. Sometimes the completely obvious escapes me.
>>> Better
>>> have another coffee.
>>>
>>> Most appreciated.
>>>
>>> I suppose of course that to make it a predicate without the preliminary
>>> let
>>> block (not that I have any objection to that) one would have to modify
>>> lilypond internals, which would not be desirable.
>> Not at all!
>>
>> Just define your predicate with
>>
>> #(define (side? obj)
>> (if (or (eq? obj 'left)
>> (eq? obj 'right))
>> #t #f))
> more succinctly
>
> #(define (side? obj)
> (or (eq? obj 'left)
> (eq? obj 'right)))
No. This will return either 'left or 'right if successful. But a
predicate is to return #t or #f.
Urs
>
>> and use it like any other procedure. The ? at the end is just a convention,
>> predicates are nothing else
>> than procedures taking one argument and returning #t or #f.
> #t or any other value that is not #f - the value #t is rather rarely
> used in conventional Scheme code; great use is made of the convenience
> that all expressions are true except #f which is false.
>
> Richard
>
>
>
>
>
>
- Defining new Scheme predicates, Andrew Bernard, 2016/11/06
- Re: Defining new Scheme predicates, Simon Albrecht, 2016/11/06
- Re: Defining new Scheme predicates, Simon Albrecht, 2016/11/06
- RE: Defining new Scheme predicates, Andrew Bernard, 2016/11/06
- Re: Defining new Scheme predicates, Thomas Morley, 2016/11/06
- RE: Defining new Scheme predicates, Urs Liska, 2016/11/07
- Re: Defining new Scheme predicates, Richard Shann, 2016/11/07
- Re: Defining new Scheme predicates,
Urs Liska <=
- Re: Defining new Scheme predicates, Urs Liska, 2016/11/07
- Re: Defining new Scheme predicates, David Kastrup, 2016/11/07
- Re: Defining new Scheme predicates, David Kastrup, 2016/11/07