Functional programming 函数式语言提供明确的数据结构表示是什么意思?
我读了第1.13章,看到了。什么是命令式语言中通常缺少的“显式数据结构表示”?谁能举个例子吗 谁能举个例子吗 这只是隐式结构数组的一个例子,与显式结构链表相比 下面的程序可以用无数种方式编写。这两个例子都不是特别令人惊讶。每一个例子都只是为了展示你可以在野外看到的代码Functional programming 函数式语言提供明确的数据结构表示是什么意思?,functional-programming,Functional Programming,我读了第1.13章,看到了。什么是命令式语言中通常缺少的“显式数据结构表示”?谁能举个例子吗 谁能举个例子吗 这只是隐式结构数组的一个例子,与显式结构链表相比 下面的程序可以用无数种方式编写。这两个例子都不是特别令人惊讶。每一个例子都只是为了展示你可以在野外看到的代码 概述 数组是一个非显式的、模糊的索引->值映射桶。它需要使用任意索引输入来读取值。您可以使用计数器对其进行“迭代”,但实际上计数器与数组本身没有任何关系—您仍然只是使用任意索引执行随机查找—不管它们是否在“序列”中 是一个显
概述 数组是一个非显式的、模糊的
索引
->值
映射桶。它需要使用任意索引输入来读取值。您可以使用计数器对其进行“迭代”,但实际上计数器与数组本身没有任何关系—您仍然只是使用任意索引执行随机查找—不管它们是否在“序列”中
是一个显式结构化的数据容器。它有一个定义的开始、结束和有意义的方式来编程地与结构交互。处理列表从
car
开始,然后使用cdr
继续,直到找到空终止符。它还有创建新对的明确方法(cons
)
非显式代码示例 这里我们有一个用JavaScript编写的命令式程序。可以说,这个计划没有结构
是一个全局定义的数组,本质上是一个大的赋值块–与索引链接的值xs
根据提供的索引更改赋值–它在doSomething
xs
还具有main
的隐性知识–或者至少,它具有xs
在doSomething
上运行的隐性知识xs
- 还请注意,由于
仅设置已知索引的新赋值,因此它会改变原始输入doSomething
没有显式输出;它隐式地依赖于main
来更改底层数据,doSomething
xs
功能剂量仪(i){
xs[i]=“已更改”
}
函数main(){
剂量测定法(1)
剂量测定法(2)
}
设xs=['a','b','c','d','e']
console.log(xs)/['a','b','c','d','e']
console.log(main())//未定义
console.log(xs)/['a','changed','changed','d','e']