【发布时间】:2011-09-13 00:56:46
【问题描述】:
我最近偶然发现了 D 编程语言,我真的很喜欢它。您可以像在 C 中一样拥有完整的硬件访问权限,同时进行真正高级别的编程。
来自相当实用的背景 (Haskell,scala) 我正在寻找一种在 D 中进行模式匹配的方法,但我在 http://www.digitalmars.com/d/ 上一无所获。 在 Haskell 中,语言本身支持模式匹配。 在 Scala 中,它通过案例类或提取器(具有 unapply 方法的普通对象)来实现。
在 D 中可以做到这一点吗?
std.concurrency 中的 receive 方法用于在 erlang 和 scala 中以 actor 风格进行并发,在这些方法上采用了一堆函数和模式数学。 但我认为它不像其他语言那样灵活。你可以使用警卫吗?你能像在 scala 中那样提取对象的内容吗?
【问题讨论】:
-
嗯...模式匹配到底是什么意思?你说的是逻辑编程吗?
-
@Mehrdad 我认为 Haskell 中的模式匹配有点像 C++ 中的模板特化。
-
@Red:嗯……我不确定我是否理解为什么它被称为模式匹配。说它像 Scheme 是否正确(因为 lambda 和宏几乎是模式匹配器)?如果是,那我想我知道我们要去哪里了。
-
@Mehrdad 之所以称为模式匹配,是因为它是模式匹配,不是模板特化。如果你想确切地知道它是什么,谷歌它。
标签: functional-programming pattern-matching d