cost 129 ms
來自 Simon Marlow 的《Haskell 中的並行和並發編程》一書中的嚴格評估示例

[英]The example of strict evaluation from Simon Marlow's book "Parallel and Concurrent Programming in Haskell"

Simon Marlow 在他的《Haskell 中的並行和並發編程》一書中寫道: 插入操作有這一行: 這在 MVar 中放置未計算的表達式Map.insert name number book 。 如果我們要連續執行許多插入操作,MVar 將建立一個大的未計算表達式鏈。 為了獲得短暫的鎖定並且沒 ...

seq 在 Haskell 中實際上做了什么?

[英]What does seq actually do in Haskell?

從現實世界 Haskell我讀到它的操作如下:當一個seq表達式被計算時,它強制計算它的第一個參數,然后返回它的第二個參數。 它實際上並沒有對第一個參數做任何事情: seq僅作為一種強制評估該值的方式而存在。 我強調了then因為對我來說它意味着兩件事發生的順序。 從Hackage我讀到如果a是底 ...

Haskell 弱頭范式

[英]Haskells Weak Head Normal Form

我被一些煩人的事情絆倒了。 我知道 haskell 與弱頭部范式 (WHNF) 一起工作,我知道這是什么。 將以下代碼輸入 ghci(我正在使用命令 :sprint 將表達式簡化為 WHNF,據我所知。): 給出intlist = _這對我來說完全有意義。 給出stringlist = [_ ...

表達式評估在Haskell中:修復子表達式的類型會導致父表達式被評估到不同的程度

[英]Expression Evaluation In Haskell: Fixing the type of a sub-expression causes parent expression to be evaluated to different degrees

我無法解釋以下行為: 現在,當我為x指定一個類型時: 為什么x的類型規范強制y為其弱頭正規形式(WHNF) ? 我在閱讀Simon Marlow在Haskell中的並行和並發編程時偶然發現了這種行為。 ...

測試值是否已評估為弱頭正常形式

[英]Test if a value has been evaluated to weak head normal form

在Haskell中,是否可以測試一個值是否已被評估為弱頭正常形式? 如果一個函數已經存在,我希望它有一個像這樣的簽名 有一些類似功能的地方。 之前的回答向我介紹了:sprint ghci命令,該命令僅打印已被強制為弱頭正常形式的值的一部分。 :sprint可以觀察是否已經評估了 ...

當GHCi允許綁定時,了解thunk的不同行為

[英]Understanding the different behavior of thunks when GHCi let bindings are involved

我一直在玩Simon Marlow關於Haskell中並行和並發編程的書中的一些例子,偶然發現了一個我不太了解的有趣行為。 這真的是我試圖了解GHC的一些內部運作方式。 假設我在REPL中執行以下操作: 好吧,這幾乎是我的預期,除了z已經被評估為WHNF。 讓我們編寫一個類似的 ...

為什么內置函數應用於被認為是弱頭正常形式的太少參數?

[英]Why is a built-in function applied to too few arguments considered to be in weak head normal form?

Haskell 定義說: 表達式是弱頭正常形式(WHNF),如果它是: 一個構造函數(最終應用於參數),如True,Just(square 42)或(:) 1 一個內置函數應用於太少的參數(可能沒有),如(+)2或sqrt。 或lambda抽象\\ x ...

弱頭正常形式和評估順序

[英]Weak head normal form and order of evaluation

我讀過很多關於弱頭正常形式和seq的書。 但是我仍然無法想象Haskell評估順序背后的邏輯 一個常見的例子說明何時以及如何使用,但我仍然不明白常見的例子 可能導致堆棧溢出。 而使用seq另一個折疊定義則沒有 從我讀過的seq的解釋,作者非常謹慎地做出如下清楚: ...

Haskell foldl'表現不佳(++)

[英]Haskell foldl' poor performance with (++)

我有這個代碼: 這些函數返回列表,每個元素乘以2: 在ghci: 為什么newList_bad函數的工作速度比newList_good慢200倍? 我知道這不是一個很好的解決方案。 但為什么這個無辜的代碼工作得如此之慢? 這是什么“4767099960字節”?? ...

什么是弱頭范式?

[英]What is Weak Head Normal Form?

弱頭范式(WHNF) 是什么意思? 頭部范式(HNF) 和范式(NF) 是什么意思? 真實世界 Haskell指出: 熟悉的 seq 函數將表達式計算為我們所說的頭部范式(縮寫為 HNF)。 一旦到達最外面的構造函數(“頭部”),它就會停止。 這與標准形式 (NF) 不同,在標准形式 (N ...


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