我一直在尝试函数式编程,但我仍然不理解这个概念。你们知道讨论这个概念的任何好书或教程或例子吗?或者,如果您可以显示有关其用法的小片段,那就太棒了。
答案 0 :(得分:4)
了解lisp或方案。语言是数据结构是语言。 Lisp代码和Lisp数据结构具有相同的语法规则。
如果你学习tcl,你可以使用程序和的语言,数据结构语法规则与编程语言语法规则相同。
严格来说,这不是一个功能性编程问题。对于数据的语法规则和语言的语法规则是相同的,使用几种语言的问题更多。
答案 1 :(得分:2)
答案 2 :(得分:1)
答案 3 :(得分:1)
REBOL是一种同性语言。 REBOL中的block!
数据类型是一组方括号,其中包含任何有效的REBOL标记,类似于Lisp中的S表达式。例如:
series: [1 2 3 4]
foreach item series [
print item
]
现在,让我们表达一点点不同:
series: [1 2 3 4]
for-body: [print item] ; This is the body of our foreach
foreach item series for-body
虽然它被声明为数据,但是当我们将块for-body
传递给foreach
函数时,我们将其视为代码。如果我们询问REBOL块for-body
中第一个项目的类型是什么 - type? first for-body
- 它会告诉我们word!
而不是function!
(或native!
或action!
或任何其他REBOL函数类型)。原因是,作为数据,for-body
只是一个未评估的REBOL单词块。当我们将其传递给foreach
时,它会被评估为代码。
有些人称REBOL“像Lisp但没有括号”,我个人更喜欢Lisp,但你可能不会。不过,当你想要了解同性恋时,这是一个很好的语言,这是一个我觉得很有吸引力的主题。