我最近开始阅读一些F#相关文献,谈到"真实世界功能编程"和"专家F#"等.一开始很容易,因为我在Haskell中有一些背景知识,并且知道C#.但是当谈到" 面向语言的编程 "时,我只是不明白. - 我读了一些解释,就像阅读一篇学术论文,每篇句子都更加抽象和奇怪.
有没有人有这样的东西的简单例子,以及它与现有范例的比较?这不仅仅是学术幻想,不是吗?;)
谢谢,愿
F#有一些机制可以用一种可能称之为"面向语言"的风格进行编程.
首先,语法细节(函数调用不需要括号,可以定义自己的中缀运算符,......)使得许多用户定义的库具有嵌入式DSL的外观.
其次,F#"引用"机制可以使您引用代码,然后使用备用语义/评估引擎运行它.
第三,F#"计算表达式"(又名工作流,monad,......)也提供了一种为某些代码块提供一种替代语义的方法.
所有这些都属于EDSL类别.
在面向对象编程中,您尝试使用对象建模问题.然后,您可以将这些对象连接在一起以执行功能...并最终解决原始问题.
在面向语言的编程中,您可以设计一种最适合有效解决问题的新域特定语言,而不是使用现有的面向对象或功能编程语言.