f# - "Language Oriented Programming"与现实世界中的 OOP/Functional 相比如何

标签 f# paradigms

我最近开始阅读一些与 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/

相关文章:

python - 字符串的近似周期 - 将 Python 代码移植到 F#

.net - 与可区分联合相比,在 F# 中使用记录类型时更加详细

f# - 了解 F# 值限制错误

oop - 怎么可能有一个纯面向对象的语言呢?

oop - 面向方面编程与面向对象编程

.net - 如何在 F#(或一般的 .Net)中生成标准正态随机变量?

data-structures - F# 有效地从 Set 的末尾删除 n 个项目

编码范式 : Should I Return 0 if Function is Successful?

python - tkinter 和 GUI 编程方法

c++ - 可以将原型(prototype) OOP 视为 C++ 中的范例吗?