[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: design advice on predicate name
From: |
Neil Jerram |
Subject: |
Re: design advice on predicate name |
Date: |
Sat, 19 Aug 2006 11:37:22 +0100 |
User-agent: |
Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux) |
"Marco Maggi" <address@hidden> writes:
> "Neil Jerram" wrote:
>>"Marco Maggi" <address@hidden> writes:
>>> Example: I have two predicates HIT-NAN? and MAP-NAN?
>>> which one it is better to call NAN?
>>
>>I'm afraid I don't understand. Perhaps you could write
>>the down for the two possibilities that you have in mind.
>
> For a vector of real numbers like this [1 +nan.0 3]:
>
> * hit-nan? returns #t because at least one element
> is nan;
>
> * map-nan? returns #(#f #t #f), one boolean for each
> element;
>
> the same for matrices. map-nan? works like the 'isnan'
> function of GNU Octave, which for the example vector
> would return [0 1 0].
>
> hit-nan? can be used in the conditional of IF and
> COND, while map-nan? must be inspected. For this reason
> I guess that hit-nan? should be the nan?, but, to the
> best of my knowledge, GNU Octave defines only the map-nan?
> equivalent so I do not know how useful can be hit-nan?
> in practice.
Thanks for explaining. My intuition is that the NAN? name should be
used only for a procedure which takes a single number and reports
whether it is NAN or not (as #t/#f).
For your `hit-nan?' procedure I would use the name `contains-nan?' or
`any-nan?'. But on the other hand, if `hit-nan?' is the name that
first occurred to you, why not stick with it? For your `map-nan?'
procedure I would use `map-nan?', as you have done.
Is it a feature of Octave that any predicate can automatically map
over a vector, or can `isnan' only be applied to a vector?
Regards,
Neil