【发布时间】:2016-10-19 11:20:47
【问题描述】:
我不太了解命令式和声明式编程范式之间的区别。我读到 Haskell 是一种声明性语言。在某种程度上,我会说是的,但在命令式的定义方面有一些事情让我感到困扰。
当我有一个数据结构并使用 Haskell 的函数进行转换时,我实际上只是告诉了要转换的内容。所以我把数据结构作为一个函数的参数,对结果很满意。
但是如果没有真正满足我需求的功能呢?
我将开始编写一个自己的函数,该函数期望数据结构作为参数。之后,我将开始编写应该如何处理数据结构。由于我只能调用本机 Haskell 函数,我仍然使用声明性范式,对吗?但是当我开始使用“if 语句”时会发生什么。既然我要告诉程序如何从那时起做事,这难道不会结束声明性吗?
【问题讨论】:
-
对于它的价值,我总是发现“命令式”/“声明式”的区别也有点人为。我发现还有其他更客观的描述:Haskell 是纯粹的、惰性的和强静态类型的,在我看来,每一个都是重要的支柱。
-
在我理解了标题为术语的线程之后,我想我会向后倾斜并保持同样的想法......但首先我需要许可! :P
-
这是我写的一篇文章,它可能会让您更好地理解代码声明性的含义。 TL;DR 是声明性代码不描述过程中的步骤,它使不变量、保证或真相声明。 medium.com/@danielt1263/…
标签: haskell declarative