Previous: Asynchronous Execution, Up: Miscellaneous [Contents]
When writing more complicated blocks, it may be preferable to store
the code in a separate file. This prevents needing to escape certain
characters and allows for using specialized editing functionality. To
help with this, a read-from-file function is provided.
;; foo.rb contains the following contents:
;; print "Hello"
(block-result (run-block (make-block*
#:code (read-from-file "foo.rb")
#:language ruby))) ;=> "Hello"
Relative filenames are looked up relative to the current working
directory, not the current Guile script. Use Guile’s
current-filename function to look up relative to the current Guile
script.
A macro, read-from-file*, is also provided. This macro accepts an
optional 2nd argument. When this 2nd argument is truthy, the file is
looked up relative to the current filename.
;; foo.rb is looked up relative to the script containing this ;; statement. (read-from-file* "foo.rb" #t) ;; Identical to read-from-file. (read-from-file* "foo.rb")