有一种叫做APL的旧计算机语言。这可以在Scala中作为DSL实现吗?
答案 0 :(得分:5)
有人可能会给出比这更好的答案,但这是我最初的想法:
Scala DSL理论上应该能够实现任何编程语言,因为它可以构建表示语法的任意结构,然后对其进行评估。
Scala DSL无法完全复制APL语法有很多原因,其中之一就是
'单引号'
可以表示APL中的字符串,但不能表示Scala中的字符串。另外(来自wikipedia page)
×/2 3 4
无效Scala。
我不知道你有多接近,但是......
答案 1 :(得分:1)
此处存在Javascript实现:https://github.com/ngn/apl