> And why not following lisp tradition and use comma character  (,) rather
> than caret
>
character (^)  for evaluating expressions?
>
> In fact fill is more or less analogous to backquote (`) (also known as
> quasiquote) in
>
several lisps :
>
> `(1 2 3) -> (1 2 3)
> `(1 (+ 2 4) 3) -> (1 (+ 2 4)  3)
> `(1 ,(+ 2 4) 3) -> (1 8 3)
>
> '(1 ,(+ 1 2)) is short writting for (backquote (unquote (+ 1 2)))
>

Both backquote and comma are already read-macros in picolisp, so that's a
no go
at the language level.

# instead using backquote / tilde read-macros
: (1 2 3)
-> (1 2 3)
: (1 (+ 2 4) 3)
-> (1 (+ 2 4) 3)
: (1 `(+ 2 4) 3)
-> (1 6 3)
: (1 ~(+ 2 4) 3)  # new
-> (1 6 3)


> You can also introduce ,@ to insert flat lists like in:
>
> (let (x '(1 2)) `(1 ,x 2)) -> (1 (1 2) 2)
> (let (x '(1 2)) `(1 ,@x 2)) -> (1 1 2 2)
>
> Even if you don't want to implement quasiquote and unquote you can use
> tradicional
>
symbols in fill, that is using , rather than ^ and maybe introducing ,@
> also in fill
>

I think Alex has shown that ',' and ',@' can be rolled into one - '^'

: (let X (1 2) (macro (1 (^ X) 2)))
-> (1 (1 2) 2)
: (let X (1 2) (macro (1 ^ X 2)))
-> (1 1 2 2)
: (let X (1 2) (macro (1 ^ (apply + X) 2)))
-> (1 3 2)

Alex, does the new tilde functionality mean that backquote is now
technically
redundant?

Reply via email to