有一種稱爲APL的舊計算機語言。這可以作爲一個DSL在Scala中實現嗎?APL能否作爲DSL在Scala中實現?
http://en.wikipedia.org/wiki/APL_%28programming_language%29
有一種稱爲APL的舊計算機語言。這可以作爲一個DSL在Scala中實現嗎?APL能否作爲DSL在Scala中實現?
http://en.wikipedia.org/wiki/APL_%28programming_language%29
有人或許可以給比這更好的答案,但是這是我最初的想法:
Scala的DSL在理論上應該能夠實現任何編程語言,因爲它可以建立表示語法的任意結構,然後對其進行評估。
Scala的DSL不能準確複製APL語法的原因有很多,其中之一是
「單引號」
可以在APL表示字符串,但不是在斯卡拉。同時,(從wikipedia page)
×/2 3 4
不會是有效的斯卡拉。
我不知道你如何能得到接近,但...
一個JavaScript執行存在這裏:https://github.com/ngn/apl
作爲外部DSL,它顯然可以。作爲內部DSL,您遇到@Owen提到的問題。 –
什麼是外部DSL? – Phil
查看http://www.infoq.com/articles/External-DSL-Vaughn-Vernon –