gpt4 book ai didi

haskell - Haskell Report 中 "varid"、 "varsym"之间的语义区别是什么?

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

我正在阅读 Haskell 报告 2010,并且对第 2.4 节中的元逻辑表示有一些疑问 Here :

  • 在“varid”和“varsym”的助记词中,“var”是指可变的吗?
  • 我的理解是“varid”是变量和函数的标识符,而“varsym”也是标识符,但用于运算符。这种理解正确吗?
  • 如果 1 和 2 都正确,是否意味着算子也是一种变量? (我很困惑,因为这可能不对。)

  • 感谢任何建议。

    最佳答案

    据我所知,该报告定义了使用前缀的符号和使用中缀的符号之间的区别,例如:

    f x y -- f is used prefix

    a / b -- / is used infix

    这只是一种语法上的方便,因为所有前缀符号都可以使用带有反引号的中缀,并且所有中缀符号都可以使用带有 () 的前缀年代:
    x `f` y -- infix

    (/) a b -- prefix
    (a /) b -- operator section
    (/ b) a -- operator section

    子问题:
  • 是的,但我无法为 id 找出任何有意义的助记符和 sym部分。 :(
  • 运算符属于 Haskell 语法领域,而不是其语义。它们仅用于为编写某些表达式提供更方便的语法。据我所知,如果将它们从 Haskell 中删除,唯一的损失将是方便的语法——即,除了方便的语法之外,您不需要任何运算符,并且您可以用非运算符符号替换运算符的每一次使用.它们与变量完全相同——变量——但它们的使用需要不同的语法。
  • 是的,我同意运算符符号是变量。但是,绑定(bind)到操作符符号的值不会是变量。
  • 关于haskell - Haskell Report 中 "varid"、 "varsym"之间的语义区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25320992/

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