首页 > 解决方案 > 如果我使用匿名函数,会选择什么变量?

问题描述

  findSatisfying :: (Int -> Bool) -> Int -> Int -> Bool
  findSatisfying p from to =
  divideAndConquer
  (\(x,y) -> x >= y)

  (\(x,y) -> x==y && p x)

  (\(x,y) -> ((x,x+((y-x) `div` 2)) , ((x+(y-x) `div` 2)+1,y))) 

  (||)

  (from, to)

这是一个在列表中找到一个整数的函数,它满足形式为 (Int->Bool) 的函数 p。

此外,它使用带有 (x,y) -> ... 的匿名函数,对应于“from”和“to”。

我不确定为什么它们对应于“from”和“to”而不是“p”。

提前致谢。

标签: haskell

解决方案


匿名函数的参数,就像命名函数的参数一样,将采用函数应用到的任何值。因此,如果您的匿名函数的参数采用值fromand to,那是因为divideAndConquer将它们应用于这些值。


推荐阅读