![]() |
1
14
我喜欢:
这似乎与Python/Generator版本有一些相似之处。 |
![]() |
2
36
我同意帕维尔的观点,直觉是主观的。因为我(慢慢地)开始摸索哈斯克尔,我可以分辨出Clojure代码的作用,尽管我一生中从未写过Clojure一行。所以我会认为Clojure系列相当直观,因为我以前见过它,我正在适应一种更实用的思维方式。 让我们考虑一下数学定义,好吗?
这是不理想的,格式方面的-这三个括号排成一个大括号-但谁在数?对于大多数数学背景的人来说,这是一个非常清楚的斐波那契数列定义。让我们来看看哈斯克尔的相同之处,因为我比Clojure更清楚:
这是一个函数,
这使得
前两个字符非常简单:
所以我们的下一个元素是1!但是我们把它加回到我们的
我们这里有一个
递归列表定义
.当我们添加更多元素到
因此,虽然理论上这可能与我们之前的数学定义相同,但它将结果保存在
如果我还没有失去你,那很好,因为这意味着你理解法律法规。看:
我们列了个清单,
在你的头脑中思考了几次,并探索了其他一些例子之后,这种生成斐波那契级数的方法至少变得半直观了。它至少有足够的直觉让我用一种我不懂的语言来识别它。 |
![]() |
3
12
如果你不知道任何命令式语言,这对你来说是直观的吗?
世界跆拳道联盟?
如果
为什么这个不行????
有很多事情是不清楚的,除非你以前在别的地方见过它,并且了解它的目的。很长一段时间我都不知道
你认为命令式方法更易读,因为你已经习惯了。 |
![]() |
4
6
Clojure代码对我来说是直观的(因为我知道Clojure)。如果你想要一些看起来更像你熟悉的东西,你可以试试这个,一个高效的、过于冗长的递归版本:
但是对于不知道递归或记忆是什么的人来说,这也不是直觉。对于大多数程序员来说,“无限的懒惰序列”的想法可能并不直观。我猜不出你的大脑里有什么,所以我不知道对你来说更直观的clojure函数会是什么样子,而不是“看起来更像python”。
对于一个不懂编程的人来说,所有这些东西看起来都像胡说八道。什么是循环?什么是函数?这是什么
|
![]() |
5
5
这个 wiki 对Clojure中的各种Fibonacci实现进行了深入的处理,如果您还没有看到它,可能会感兴趣。 |
![]() |
6
2
你应该总是使用适合问题的语言
|
![]() |
7
2
这里有一个解决方案。
|
![]() |
8
-1
想想看,你会怎么写《懒猫》和《克洛尤里的重现》。 |
![]() |
9
-5
似乎是最直观的。我是说,这正是你要做的。为了知道应该发生什么,你甚至不需要了解任何关于语言的事情,甚至不需要知道那是什么语言。 |