On Dec 30, 2013, at 4:03 PM, 亀田馬志 <masashi.kam...@gmail.com> wrote:

> (require srfi/13)
> 
> (define (yes-or-no? arg)
>   ; expected it returns #t or #f
>   ; depending on input such as yes or no
>   (letrec ((y-or-n?
>             ; if argument is either Y or YES,
>             ; it returns #t otherwise #f
>             (lambda (sym)
>               (and (memq sym '(Y YES)) #t)))
>            (symbol-upcase
>             ; confirm any symbol into uppercase
>             (lambda (arg)
>               (if (symbol? arg)
>                   (string->symbol (string-upcase (symbol->string arg)))
>                   (yes-or-no? (read))))))

Do you really want to recur here? 


>     (let ((sym (symbol-upcase arg)))
>       (if (memq sym '(Y YES N NO))
>           (y-or-n? sym)
>           (yes-or-no? (read))))))
> 
> I expected that (cond ((I input y or yes) returns #t)
>                                ((I input n or no) returns #f)
>                                (else this procedure waits something))





____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to