racket - Scheme's "expected a procedure that can be applied to arguments" -


i use drracket. have problem code:

          (define (qweqwe n) (                       (cond                          [(< n 10) #t]                         [(>= (lastnum n) (pochtilastnum n)) (qweqwe (quotient n 10))]                         [else #f]                         )                       )     )     (define ( rty file1 file2 )       (define out (open-output-file file2 #:mode  'text #:exists 'replace))       (define in (open-input-file file1))      (define (printtofile q) (begin                    (write q out)                    (display '#\newline out)                    ))        (define (next)            (define n (read in))  (cond        [(equal? n eof) #t]       [else (begin       ((if (qweqwe n) (printtofile n) #f))       ) (next)]       ) )     (next)       (close-input-port in)    (close-output-port out))  

but when start ( rty "in.txt" "out.txt" ) have error @ ((if (qweqwe n) (printtofile n) #f)) :

    application: not procedure;     expected procedure can applied arguments     given: #f     arguments...: [none] 

what's problem?

add: changedmy code to:

(cond        [(equal? n eof) #t]       [else       (if (qweqwe n) (printtofile n) #f)       (next)]       ) 

but problem remains.

there unnecessary parenthesis, don't this:

((if (qweqwe n) (printtofile n) #f)) 

try instead:

(if (qweqwe n) (printtofile n) #f) 

also in here:

(define (qweqwe n)   ((cond [(< n 10) #t]          [(>= (lastnum n) (pochtilastnum n)) (qweqwe (quotient n 10))]          [else #f]))) 

it should be:

(define (qweqwe n)   (cond [(< n 10) #t]         [(>= (lastnum n) (pochtilastnum n)) (qweqwe (quotient n 10))]         [else #f])) 

in both cases problem if surround () expression, means you're trying invoke procedure. , given result of if , cond expressions above don't return procedure, error occurs. also, bothbegins in original code unnecessary, cond has implicit begin after each condition, same thing body of procedure definition.


Comments

Popular posts from this blog

java - Jmockit String final length method mocking Issue -

asp.net - Razor Page Hosted on IIS 6 Fails Every Morning -

c++ - wxwidget compiling on windows command prompt -