[英]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
用作inc
, a
用作9
, b
用作(f (*2) expo 3 1)
,得到
inc(9 - (f (*2) expo 3 1))
现在,我们实际上已经完成了被问到的问题。 那是最左边,最外面的减少。 请注意,我们不需要使用其他函数的任何事实,这可能就是提示的含义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.