- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 ocaml 的新手。
如果有人能帮助我理解,不胜感激
本书第 94 页上的 Material
“用客观的caml开发应用程序”。
难以理解以下段落的含义:
Just that the evaluation of
(itl l)
has taken place before the evaluation of(ihd l)
, so that on the last iteration ofimap
, the list referenced byl
became the empty list before we examined its head. The list example is henceforth definitely empty even though we have not obtained any result
imap (function x ! x)
示例返回
Uncaught exception: Failure("hd")
- : string ilist = {c=["one"; "two"; "three"]}
else icons (f (ihd l)) (imap f (itl l))`
icons("one") ( ( icons("two") ( ( icon("three")([]) ) ) )
并返回
- : string ilist = {c=["one"; "two"; "three"]}
最佳答案
我在书中的例子中,列表是以命令式的方式实现的。函数itl
改变列表 - 即它通过删除第一个元素来更改列表。调用后itl
,第一个元素基本上永远消失了。
棘手的部分是 icons
的参数的顺序在语句中执行:
else icons (f (ihd l)) (imap f (itl l))
(imap f (itl l))
在
(f (ihd l))
之前执行.这意味着到时候
ihd
实际上被称为,
itl
已被调用足够多的次数来删除
l
的所有元素.
l
只是
["three"]
.你认为这会导致:
icons (f "three") (imap f [])
itl
会发生什么第一的:
(* l = ["three"] *)
let tail = (itl l) in (* tail = [], l = [] *)
let head = (ihd l) in (* l = [], ihd raises an exception *)
icons head (imap f tail)
let f x y z = x + y + z
f (print_int 1; 1) (print_int 2; 2) (print_int 3; 3)
321- : int = 6
关于ocaml - 理解 Ocaml 中的命令式列表示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4506353/
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
我正在做一个相当简单的示例来学习如何使用 ocaml 作为命令式语言。我的猜测是我搞乱了分号,但我在代码中找不到任何错误 let sort array = for index = 0 to (Arra
我是函数式编程的新手,我刚遇到一些事情,想知道是否有解决办法。 假设我有 myArray = [ { a : 1 } { a : 4 } { a : 5 } { a : 6 } {
我正在尝试在我的 Node 应用程序的 dockerode 容器中编译并执行 java 程序。我可以通过首先使用基本 javascript 写入 tmp.java 文件,然后运行以下 shell 命令
Quicksort 通常被描述为一种原位(就地)算法,尽管它需要 O(log n) 堆栈空间。那么 in situ 是否意味着“需要少于 O(n) 的额外空间”,或者堆栈空间通常不算作空间复杂度(但为
我需要一些关于 Reactive JS 和“if 语句”的帮助 我不知道如何在 Reactive JS 中实现一个简单的代码在 Spark AR 中是这样的: if( boolvalue=true)
我是 Scala 的新手,我正在尝试从 IndexedSeq 创建一个大 map ,我在 SO 上发现了一个提及,即函数式 map 创建比命令式 Java map 创建慢得多,我决定自己测试一下。到目
我是一名优秀的程序员,十分优秀!