Well long day... I was getting lost in basically getting a Number -> Float.

So for example:

(: S->F : String -> (Option Float))
(define (S->F s)
  (define n (string->number s))
  (and (flonum? n) n))

(S->F "3") ;; Fails


For some reason I was thinking I had to got through exact? and inexact?
type tests and I didn't find the real->double-flonum until just now.

The below works for me.

(: S->F : String -> (Option Float))
(define (S->F s)
  (let ((n (string->number s)))
    (if (real? n)
        (real->double-flonum n)
        #f)))







On Wed, Feb 13, 2013 at 10:04 PM, Matthias Felleisen
<[email protected]>wrote:

>
> #lang typed/racket
>
> (: S->F : String -> (Option Float))
> (define (S->F s)
>   (define n (string->number s))
>   (and (flonum? n) n))
>
> I assume you mean to convert strings into floats, if possible.
>
> But you may like the funny answers better -- Matthias
>
>
>
> On Feb 13, 2013, at 9:49 PM, Ray Racine wrote:
>
> > What is the most efficient way to write the following method in TR?
> >
> > (: S->F (String -> (Option Float)))
> >
> >
> > ____________________
> >  Racket Users list:
> >  http://lists.racket-lang.org/users
>
>
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to