I am trying to implement a simple functional language for automatic program synthesis.
The data structure is a graph of functions and values, which compiles down to javascript.
The following graph should be a fold function. funcApp
nodes are connected to a function node and a number of value nodes, and it applies the function to the values. arg0
is the list, arg1
is an initial value (z) arg2
is the function to be applied.
这相当于组合办法的定义(尽管我的语言并非计划,但是图表)。
(define (foldr f z xs)
(if (null? xs)
z
(f (car xs) (foldr f z (cdr xs)))))
问题是,由于没有特别运营商,因此一切,特别是<条码>,只要“<>/代码”只是正常功能。 这样,方案永远不会终止,而是达到最大的深度,因为其他条款总是被计算。
我假定,这个问题在某些语言中通过zy评价得到解决。 因此,我的问题是:是否有一套功能性文件,没有这种无限的重复,2)如果有必要,就开始考虑将评价应用到简单的语言上。