lisp - How to write to a file in tinyscheme? -


scheme implementation : tinyscheme

here try:

(with-output-to-file "biophilia.c"   (lambda (output-port)     (write "hello" output-port))) 

ceates biophilia.c following content:

error: ( : 26) not enough arguments

what doing wrong here? how repair it?

(define (with-output-to-file s p)      (let ((outport (open-output-file s)))           (if (eq? outport #f)                #f                (let ((prev-outport (current-output-port)))                     (set-output-port outport)                     (let ((res (p)))                          (close-output-port outport)                          (set-output-port prev-outport)                          res))))) 

you calling with-output-to-file incorrectly.

the second argument thunk, , not procedure expecting port argument.

so call like:

(with-output-to-file "biophilia.c"   (lambda ()     (write "hello"))) 

with-output-to-file re-binding of current-port (as tried in reconstruction).

see racket docs here.


Comments

Popular posts from this blog

How do you change vbulletin's home page to the forums instead of the default (CMS or Activity Stream)? -

c++ - Troubles when compiling phash program -