Fre*_*abe 7

代码递归的(它是根据自身定义的).我相信@ leftroundabout关于强调功能的想法是准确的.下一张幻灯片说

do putY (y - x)
   gcdST
Run Code Online (Sandbox Code Playgroud)

Recursive data definition
* not recursive function call
* like ones = 1 : ones
Run Code Online (Sandbox Code Playgroud)

即没有递归函数调用,因为gdcST它不是一个函数(它不需要参数!).这是一个递归数据定义.

  • @LayGonzález不,这不是一个功能 - 它不需要争论.在Haskell中,值仅在其类型中具有" - >"时才起作用.并且,就像幻灯片所说,没有"呼唤" - 因为没有功能.它只执行与'ones = 1:ones`中第二次出现的'ones`执行产生列表的计算相同的计算.它确实评估了一个值,这是正确的. (2认同)