繁体   English   中英

最左侧最外层约简(Haskell)

[英]Leftmost outermost Reduction (Haskell)

我得到的任务是在以下表达式上使用最左边的最外层约简:

f inc expo 9 (f (*2) expo 3 1)

inc被定义为:

 inc :: Int -> Int
 inc x = x+1

博览会定义为:

expo :: Int -> Int
expo x = expo (x*2)

和f为:

f :: (Int->Int) -> (Int-> Int) -> Int -> Int -> Int
f g h a b = g(a-b)

我绝对不知道从何处开始使用更多功能。 我阅读了以下提示:该redex不包含在任何其他redex中,但是我没有得到它;(。

我将不胜感激每一个技巧/帮助。

的第一个(最左边,最外面)还原

f inc expo 9 (f (*2) expo 3 1)

是应用f的定义一次,其中fghab = g(ab)所以我们将g用作inca用作9b用作(f (*2) expo 3 1) ,得到

inc(9 - (f (*2) expo 3 1))

现在,我们实际上已经完成了被问到的问题。 那是最左边,最外面的减少。 请注意,我们不需要使用其他函数的任何事实,这可能就是提示的含义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM