-
Notifications
You must be signed in to change notification settings - Fork 32
Open
Description
I believe that I maybe found a bug in the compiler.
Steps to reproduce:
cat > puzzle.cl <<EOF
(mod params
(defun ident (arg)
(f (list arg))
)
(ident (ident params))
)
EOF
run puzzle.clExpected result:
I expect a CLVM puzzle to be written to stdout, which would output its solution when passed to brun (i.e. "identity puzzle").
Actual results:
The run command fails with the following message:
FAIL: first of non-cons 1
Some more insight:
When I modify the puzzle in either one of the following ways, then it translates and the resulting CLVM behaves as expected:
(f (list arg))->(f arg)(f (list arg))->(list arg)(f (list arg))->(f (f arg))(f (list arg))->(list (list arg))(f (list arg))->(list (f arg))(ident (ident params))->(ident params)(mod params ...)->(mod (params) ...)
Please note that the documentation admits any of the following possibilities:
(mod params ...)(mod (param_one param_two) ...)(mod ((param)) ...)
Quoting https://chialisp.com/docs/high_level_lang#squaring-a-list:
You can name each parameter in a list or you can name the list itself. This works at any place where you name parameters, and allows you to handle lists where you aren't sure of the size.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels