Comment by Bogdanp
5 months ago
> 3. from what I understand, shell syntax is available only at REPL top level. Once you switch to Lisp syntax with `(`, you can return to shell syntax only with `)`. Thus means you cannot embed shell syntax inside Lisp syntax, i.e. you cannot do `(define j {find -type f | less})`
It's possible I misunderstand what you mean because I'm not sure what piping to less is supposed to accomplish here, but this is not true. The following program works just fine:
#lang rash
(require racket/port
racket/string)
(define (echo!!! message)
(define output {echo $message |> port->string |> string-trim})
(string-append output "!!!"))
(echo!!! "Hello")
Nice! then my point 3. above is wrong and should be deleted