gpt4 book ai didi

haskell - 了解 Data.Function.on 类型签名

转载 作者:行者123 更新时间:2023-12-04 12:20:01 25 4
gpt4 key购买 nike

在 Haskell 语法和函数式编程语言方面,我仍然是初学者,所以当我查看 Data.Function.on 的类型声明时这是on :: (b -> b -> c) -> (a -> b) -> a -> a -> c ,我的解释是它需要四个参数:(b -> b -> c) , (a -> b) , a , a , 并返回 c .但是,当我查看 Data.Function.on 的一般使用语法时这是(*) `on` f = \x y -> f x * f y ,它只带两个函数参数,而不是四个,那么类型签名与使用语法有什么关系呢?

最佳答案

my interpretation is that it takes four parameters



所有 Haskell 函数都有一个参数。其中一些只是返回其他功能。

查看 on 签名的最佳方式作为高阶函数: (b -> b -> c) -> (a -> b) -> (a -> a -> c) .这就是说“如果你给我一个二元运算符,它接受 b s 并给出一个 c 和一种从 b s 获得 a s 的方法,我会给你一个二元运算符,它接受 a s并给出 c"。您可以在定义中看到这一点:
(*) `on` f = \x y -> f x * f y

关于haskell - 了解 Data.Function.on 类型签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45261292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com