gpt4 book ai didi

haskell - `Operator`字定义是什么?

转载 作者:行者123 更新时间:2023-12-02 07:26:30 24 4
gpt4 key购买 nike

我学习 Haskell。 Haskell 中 operator 的定义是什么?我找不到明确的定义。

我认为是类似的东西(我自己的理解):

Operator is a function with the name, containing the ascSymbol symbols only, not starting with the : symbol and has two parameters only.

从 Haskell 2010 开始,ascSymbol 组包含:

! # $ % & * + . / < = > ? @ \ ˆ | - ˜ :

但我不确定我是对的...例如,在我看来是运算符:

(!#$%&*+./<=>?@\^|-~:) :: Int -> Int -> Int
a !#$%&*+./<=>?@\^|-~: b = a * b

输出:

λ: 10 !#$%&*+./<=>?@\^|-~: 20
200
λ: (!#$%&*+./<=>?@\^|-~:) 40 20
800

但是这个呢(?):

(!#$%&*+./<=>?@\^|-~:) :: Int -> Int
(!#$%&*+./<=>?@\^|-~:) a = a * a

输出:

λ: (!#$%&*+./<=>?@\^|-~:) 5
25

或者这个(?):

(!#$%&*+./<=>?@\^|-~:) :: Int -> Int -> Int -> Int
(!#$%&*+./<=>?@\^|-~:) a b c = a + b + c

输出:

λ: (!#$%&*+./<=>?@\^|-~:) 3 5 6
14
λ: (3 !#$%&*+./<=>?@\^|-~: 5) 6
14

第二个和第三个变体也是运算符吗?

最佳答案

根据 Haskell Report ,

an operator symbol can be converted to an ordinary identifier by enclosing it in parentheses.

所以这个(!#$%&*+./<=>?@\^|-~:)是一个普通的标识符。

关于haskell - `Operator`字定义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28106953/

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