I'd like a predicate that checks whether a number is a Float. Here's what I tried:
(: amplitudes/t (Listof Float)) (define amplitudes/t (cond [(andmap inexact-real? amplitudes) amplitudes] [(error 'impossible "Make TR happy")])) But I get: Type Checker: Expected Coefficients, but got (U Null (Pairof Inexact-Real (Listof Inexact-Real))) in: amplitudes Examining the difference between Inexact-Real and Float yields this: > (:type Float) (U Float-Positive-Zero Float-Negative-Zero Float-Nan Positive-Float Negative-Float) > (:type Inexact-Real) (U Float-Positive-Zero Float-Negative-Zero Float-Nan Positive-Float Negative-Float Single-Flonum-Positive-Zero Single-Flonum-Negative-Zero Single-Flonum-Nan Positive-Single-Flonum Negative-Single-Flonum) ...which actually made me laugh out loud. Is there a predicate I can use instead of 'inexact-real?' that checks whether a number belongs to the type Float? (The larger picture here is that TR *had* this type information--namely, that amplitudes is a (Listof Float), but it looks like it's getting lost by an overly-complex expansion of match.) John
smime.p7s
Description: S/MIME cryptographic signature
____________________ Racket Users list: http://lists.racket-lang.org/users