My previous thread fell off the front page, so here's a new one. ^_^ I only have one new bug to report right now, which is that on both platforms, optional arguments don't work very well inside of destructuring arguments. Official Arc 3.1: Use (quit) to quit, (tl) to return here after an interrupt.
arc> (let ((o x 2)) nil x)
2
arc> (let (a (o b 2)) '(1) b)
2
arc> (let default 2 ((fn ((o x default)) x)))
2
arc> (let default 2 (let ((o x default)) nil x))
2
arc> (let default 2 (let (a (o b default)) '(1) b))
2
arc>
Jarc 19: Jarc> (let ((o x 2)) nil x)
(stdin):1: Error: Type-error:
(o x 2) is not of type SYMBOL
0: ((fn (((o x 2))) x) nil)
DEBUG 0: q
Jarc> (let (a (o b 2)) '(1) b)
(stdin):3: Error: Insufficient DS arguments, missing value for (o b 2)
0: ((fn ((a (o b 2))) b) (quote (1)))
DEBUG 0: q
Jarc> (let default 2 ((fn ((o x default)) x)))
2
Jarc> (let default 2 (let ((o x default)) nil x))
(stdin):6: Error: Type-error:
(o x default) is not of type SYMBOL
0: ((fn (((o x default))) x) nil)
DEBUG 0: q
Jarc> (let default 2 (let (a (o b default)) '(1) b))
(stdin):8: Error: Insufficient DS arguments, missing value for (o b default)
0: ((fn ((a (o b default))) b) (quote (1)))
DEBUG 0: q
Jarc>
Rainbow: *** redefining no
*** redefining map1
*** redefining pr
*** redefining list
repl in 8688ms
arc> (let ((o x 2)) nil x)
2
arc> (let (a (o b 2)) '(1) b)
2
arc> (let default 2 ((fn ((o x default)) x)))
2
arc> (let default 2 (let ((o x default)) nil x))
Exception in thread "main" java.lang.IllegalArgumentException: Illegal Capacity: -1
at java.util.ArrayList.<init>(ArrayList.java:110)
at rainbow.vm.VM.handleError(VM.java:135)
at rainbow.vm.VM.loop(VM.java:95)
at rainbow.vm.VM.thread(VM.java:58)
at rainbow.Console.compileAndEval(Console.java:193)
at rainbow.Console.interpret(Console.java:127)
at rainbow.Console.repl(Console.java:117)
at rainbow.Console.main(Console.java:59)
Press any key to continue . . .
The last line there is my cue that the batch process is ending and I'm going to lose the command window. The same error occurs if I enter (let default 2 (let (a (o b default)) '(1) b)). |