簡體   English   中英

“向右聯系”是否等同於左右聯合?

[英]Is “associates to the right” equivalent to being left or right associative?

如果我說一個操作是左關聯的,那相當於說它“從左邊關聯”和“從右邊關聯”?

我的困惑來自於我的函數式編程Haskell教科書中的一個例子。 它指出:

功能應用程序關聯到左側。 例如mult xyz表示((mult x)y)z mult取整數x ,返回一個函數mult x ,取整數y ,並返回一個函數mult xy ,取整數z並返回x*y*z

但如果我說它“與左邊相關”,我認為它是正確聯想的,即評估從右邊和左邊開始。 然而,由於評價mult 左邊右邊開始,這是左結合? 作者是否應該說功能應用“與權利相關”? 或者我錯過了什么,作者是正確的?

您只需要停止考慮評估順序。

包圍實際上是關於表達結構,也就是說,當我們說mult xy ,我們指的是哪一個,而不是我們以后如何決定評估它。

      $           $
     / \         / \
    $   y     mult  $
   / \             / \
mult  x           x   y

是的,我們在學校被教導括號是關於你做事的順序。這是因為我們在算術運算符的背景下學習它。 由於這些都是嚴格的,因此決定如何評估給定表達式的自由度較低,並且包圍主要決定一個順序。 此外,我們可能從未想過將表達式視為與寫下來的方式截然不同的抽象事物。

在Haskell的更一般的上下文中,我們無法將解析和評估混為一談。 當我們說“左邊的人”或“左邊的人”時,我們只談論它是如何被解析的。 它告訴你x屬於一個子表達式,其左邊是mult ,而右邊沒有y

(我沒有看到任何人使用“來自同事”這個短語,除非你把它看成是“遠離他人”,否則它沒有任何意義。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM