evaluation-strategy

    4熱度

    5回答

    我一直以爲撥打電話和傳遞值是同義詞。不過,我最近聽到有人提到他們,好像他們不一樣。它們是一樣的嗎? 我也在談論他們對應的引用條款。

    0熱度

    1回答

    無論我讀了多少主題,我都無法理解評估策略。你能用一個例子向我解釋三個評估命令嗎?我正在寫下面的代碼。你能否按需要解釋呼叫(懶惰評估),按名稱呼叫(正常的訂單評估),使用下面的代碼通過參考呼叫。你也可以用你的例子來解釋它們。我只想要了解他們,但我無法理解。 int a[4] = {10,20,30,40}; int i = 0; int *p; void test(int x, int y,

    2熱度

    1回答

    首先,我從來沒有研究過這些東西,或任何東西,所以我可能會問很無聊的問題,這我很抱歉,請去容易對我:) 我玩弄實施演算,並根據需求進行評估。我試圖按照this paper關於這個問題,其中有關位似乎是第28頁上描述的自然語義。 無論如何,我不明白這個評估策略是,據我瞭解,實際替代只發生在評估變量時。抽象評估自己,因爲這些是值,應用程序只會將新條目添加到緩存中。 但考慮到,究竟是如何一個去評價像 (λ

    0熱度

    3回答

    我讀過perl在執行子節點時使用了引用調用。我做了一個簡單的代碼來檢查此屬性,但它的行爲一樣,如果perl的是個call-by-值: $x=50; $y=70; sub interchange { ($x1, $y1) = @_; $z1 = $x1; $x1 = $y1; $y1 = $z1; print "x1:$x1 y1:$y1\

    0熱度

    1回答

    「頂級評估」是什麼意思? 這個術語在提到的文本中沒有定義。我不想告訴具體的背景,因爲我只對一般的解釋感興趣。

    1熱度

    1回答

    我很難找出一種方式來解釋爲什麼以下兩個看似等效的無限隨機數序列(inf和inf')的定義完全不同: import Control.Monad.Random (Rand, evalRandIO, getRandom) import System.Random (Random, RandomGen, randomIO) inf :: (RandomGen g, Random a) => Ran

    11熱度

    3回答

    我知道Scala支持ALGOL的名稱調用,我想我明白這意味着什麼,但Scala可以像C#,VB.NET和C++那樣通過引用進行調用嗎?我知道Java不能通過引用來調用,但我不確定這個限制是否僅僅是由於語言或JVM。 當你想將一個龐大的數據結構傳遞給一個方法,但你不想複製它時,這會很有用。在這種情況下,通過引用調用看起來很完美。

    1熱度

    1回答

    我知道這個話題已經討論過好幾次了,但還是有些東西還不清楚。 我讀過這個問題applicative-order/call-by-value and normal-order/call-by-name differences和有件事我會澄清一勞永逸: 呼叫按姓名 由於正常秩序,但沒有減少在裏面抽象執行。例如λx。(λx.x)x根據此策略處於正常形式,儘管它包含redex(λx.x)x。 在名稱調用中,