我最近开始阅读一些与 F# 相关的文献,其中提到了“真实世界函数式编程”和“专家 F#”e。 g.. 一开始很容易,因为我有一些 Haskell 背景,并且了解 C#。但当谈到“Language Oriented Programming”时,我就是不明白。 - 我读了一些解释,就像读一篇学术论文,每句话都变得更加抽象和奇怪。
有人有此类内容的简单示例吗?以及它与现有范例的比较如何?这不仅仅是学术幻想,不是吗? ;)
谢谢, 愿望
最佳答案
面向语言的程序(LOP)可用于描述以下任何内容。
创建外部语言 (DSL)
这可能是 LOP 最常见的用法,并且是您拥有特定域的地方 - 例如 UPS 通过运输类型通过路线运输包裹等。而不是尝试在程序内对所有这些特定于域的实体进行编码代码,您宁愿为该领域创建一种单独的编程语言。因此,您可以用单独的外部语言对您的问题进行编码。
创建内部语言
有时,您希望程序代码看起来不像“代码”,而是更接近问题域。也就是说,让代码“更自然地阅读”。流畅的界面就是一个例子:Fluent Interface 。此外,F# 具有很好地支持这一点的事件模式。
我写了a blog post不久前在 LOP 上提供了一些代码示例。
关于f# - "Language Oriented Programming"与现实世界中的 OOP/Functional 相比如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1703869/