小编snc*_*pst的帖子

在prolog中编写上下文无关语法

假设我有以下上下文无关语法.

S -> A
A -> mAn
A -> o
Run Code Online (Sandbox Code Playgroud)

这怎么看prolog?这是我尝试过但它不起作用.第二行似乎是问题所在.

S(Z) :- A(Z).
A(Z) :- append([m],X,Z2), A(X), append(Z2,[n],Z).
A([o]).
Run Code Online (Sandbox Code Playgroud)

list prolog context-free-grammar dcg

5
推荐指数
1
解决办法
542
查看次数

调用列表中每个元素的函数

仅使用递归(即没有任何类型的循环),给定一个元素列表,我如何每次在 OCaml 中使用该元素作为参数来为列表中的每个元素调用一个函数?Fold 和 map 不起作用,因为虽然它们对每个元素应用一个函数,但它返回我在每个元素上调用的任何函数的列表,这不是我想要的。

为了更好地说明我在 OCaml 中本质上想要做的事情,以下是我想要在 Ruby 代码中实现的想法:

arr.each {|x| some_function x}
Run Code Online (Sandbox Code Playgroud)

但我必须仅使用递归而不使用 iter 函数来完成此操作

recursion ocaml functional-programming

3
推荐指数
1
解决办法
1万
查看次数

OCaml-if-else 块中的局部变量?

如何在 if-else 块中创建局部变量?(如果这在 Ocaml 中有效)

以下是我在 OCaml 中尝试执行的 C 示例代码:

if (1 == 1) {
        return 3;
    } else {
        int j = 5;
        return j;
    }
Run Code Online (Sandbox Code Playgroud)

ocaml functional-programming if-statement

1
推荐指数
1
解决办法
1079
查看次数