haskell - 如果我使用匿名函数,会选择什么变量?
问题描述
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”。
提前致谢。
解决方案
匿名函数的参数,就像命名函数的参数一样,将采用函数应用到的任何值。因此,如果您的匿名函数的参数采用值from
and to
,那是因为divideAndConquer
将它们应用于这些值。
推荐阅读
- r - find max column value in r conditional on another column
- arduino - 将对象写入和读取到 esp32 闪存,arduino
- c# - 一旦我将脚本应用到场景编辑器中的游戏对象,我的函数就会运行。我需要它只在运行时影响对象
- python - 将 .isin 应用于熊猫中每一行的有效方法
- spring-boot - @Autowire 如何在 spring-boot 单元测试中工作?
- ansible - 用于安装 mod_ssl、python-passlib 和 firewalld 的 Ansible-Playbook(并始终保持最新)
- python - 如何通过在中间插入/更改字符来修改文本文件?
- css - CSS Grid:`grid-auto-flow: row` 无法水平对齐子项
- html - 图像在 Chrome 但不是 Firefox 中加载
- algorithm - 索引 N 维向量