Re:Schemesh: Fusion between Unix shell and Lisp REPL
by sshine on Sunday February 16, 2025 @10:57AM
(#43068988)
Then [ shadows the sh executable aliased from ‘test’ so that you can no longer do
But have to write
[ Parent
| on HN ]
Re:Schemesh: Fusion between Unix shell and Lisp REPL
by cosmos0072 on Monday February 17, 2025 @02:16AM
(#43076114)
That's true.
In shells, "test" and "[" are often used after "if", as for example
if test -f "some_file"
do_something
fi
if [ "$FOO" != "" ]
do_something_else
fi
Schemesh does not have a shell builtin "if", you switch to Scheme for that: (if (file-regular? "some_file')
(sh-run {do_something}))
Thus the need for "test" and its alias "[" is reduced.Also, "test" implements a mini-language full of one-letter operators: `-f FILE` `COND1 -a COND2` `COND1 -o COND2` etc.
I really don't miss it, as I find the equivalent in Scheme to be more readable - and of course more general
(file-regular? "FILE")
(and COND1 COND2)
(or COND1 COND2)
etc.