函数的内核语言表示
Kernel language representation of a function
存根
之后N + {Add N - 1}
的内核语言表示是什么
local I1 in
// the code
end
end
end
函数{Add N}
的程序定义如下
proc {Add N R}
if N == 0 then R = 0
else N + {Add N - 1}
end
end
在内核语言中,您必须为每个操作定义一个新的标识符。一个用于 N-1
操作,另一个用于检索过程 Add
的结果,第三个用于存储 N + {Add N-1}
的结果。您还必须分别声明每个局部变量。
所以你会得到这样的结果:
local I1 in
local I2 in
local I3 in
I1 = 1
I2 = N - I1
{Add I2 I3}
R = N + I3
end
end
end
然后 I3
包含值 N + {Add N-1}
你可以用莫扎特IDE获得任意一段代码的内核语言。
您只需转到选项卡 Oz > 核心语法 > 任何您想要翻译成 KL 的代码
给出
declare Add in
local UnnestApply1 UnnestApply2 in
proc {Add N Result1}
local IfArbiter1 UnnestApply3 in
UnnestApply3 = 0
IfArbiter1 = N == UnnestApply3
if IfArbiter1 then
Result1 = 0
else
local UnnestApply4 UnnestApply5 UnnestApply6 in
UnnestApply6 = 1
UnnestApply5 = N - UnnestApply6
{Add UnnestApply5 UnnestApply4}
Result1 = N + UnnestApply4
end
end
end
end
UnnestApply2 = 4
{Add UnnestApply2 UnnestApply1}
{Browse UnnestApply1}
end
它可能很难读懂,但这个工具真的很有用而且功能强大
存根
之后N + {Add N - 1}
的内核语言表示是什么
local I1 in
// the code
end
end
end
函数{Add N}
的程序定义如下
proc {Add N R}
if N == 0 then R = 0
else N + {Add N - 1}
end
end
在内核语言中,您必须为每个操作定义一个新的标识符。一个用于 N-1
操作,另一个用于检索过程 Add
的结果,第三个用于存储 N + {Add N-1}
的结果。您还必须分别声明每个局部变量。
所以你会得到这样的结果:
local I1 in
local I2 in
local I3 in
I1 = 1
I2 = N - I1
{Add I2 I3}
R = N + I3
end
end
end
然后 I3
包含值 N + {Add N-1}
你可以用莫扎特IDE获得任意一段代码的内核语言。
您只需转到选项卡 Oz > 核心语法 > 任何您想要翻译成 KL 的代码
给出
declare Add in
local UnnestApply1 UnnestApply2 in
proc {Add N Result1}
local IfArbiter1 UnnestApply3 in
UnnestApply3 = 0
IfArbiter1 = N == UnnestApply3
if IfArbiter1 then
Result1 = 0
else
local UnnestApply4 UnnestApply5 UnnestApply6 in
UnnestApply6 = 1
UnnestApply5 = N - UnnestApply6
{Add UnnestApply5 UnnestApply4}
Result1 = N + UnnestApply4
end
end
end
end
UnnestApply2 = 4
{Add UnnestApply2 UnnestApply1}
{Browse UnnestApply1}
end
它可能很难读懂,但这个工具真的很有用而且功能强大