Lisp interpreter made with Action Script 3.(solve-et-coagula.com)
solve-et-coagula.com
Lisp interpreter made with Action Script 3.
http://www.solve-et-coagula.com/As3Lisp.html
The author talks about his work on http://www.solve-et-coagula.com/?p=8.
10 comments
It doesn't seem to support closures.
User>(defun accgen (x)
(lambda (y)
(incf x y)))
ACCGEN
User>(setf foo (accgen 5))
<Interpreted Lisp Function>
User>(funcall foo 5)
NaN
User>(let ((bar "bar"))
(defun qux ()
(print bar)))
QUX
User>(qux)
null
User>He has released the source code of the interpreter: http://www.solve-et-coagula.com/?p=9.
That's the first time I've looked at ActionScript code. Javascript has such an elegant object system - they should have kept it.
Could be wrong but I think you can still use the prototype syntax if you want.
I know that the prototype syntax is available in as2, but I think it was removed in as3. I agree that the prototype syntax is more elegant, but I really believe Adobe was trying to appeal to Java and .NET developers.
"but I think it was removed in as3"
Wrong. I was curious so i tested it (i've been experimenting with Flex 2). The following code outputs "blah blah":
var foo:Function = function() {}
foo.prototype.someMethod = function() { trace("blah blah"); }
new foo().someMethod();
I think the prototype syntax was kept to maintain backwards compatibility.
Wrong. I was curious so i tested it (i've been experimenting with Flex 2). The following code outputs "blah blah":
var foo:Function = function() {}
foo.prototype.someMethod = function() { trace("blah blah"); }
new foo().someMethod();
I think the prototype syntax was kept to maintain backwards compatibility.
Thats cool, does it work with creating classes that way as well?
im assuming the above code is equivalent to:
class foo {
new foo().someMethod();
just different approaches to the same problem
class foo {
public function someMethod() { trace("blah blah"); }
}new foo().someMethod();
just different approaches to the same problem
[deleted]
touche?