簡體   English   中英

seq代表什么是haskell

[英]what does seq stand for in haskell

我是哈斯凱爾的新手,剛剛來到懶惰的世界。 我讀到seq函數非常特殊,因為它強制使用嚴格的評估,以便在某些情況下更有效。 但我真的找不到seq代表什么字面意思。 也許嚴格評價Q * ???

它應該提醒你“順序”或“序列”,因為它允許程序員指定其參數的評估順序。

seq在返回第二個參數之前計算其第一個參數。 通常通過避免不必要的懶惰來提高性能。 它強制評估功能。

seq :: a -> b -> b
seq _ y = y

來自prelude.hs

這個函數定義包含在#ifdef __HADDOCK__所以它只能由haddock(文檔工具)編譯,而不是由實際的編譯器編譯! '真實'seq在GHC.Prim中定義為

 seq :: a -> b -> b; seq = let x = x in x. 

這只是一個虛擬定義。 基本上seq是由編譯器特別處理的語法。 你寫了'seq評估它的第一個參數' - 但是第一個定義顯然不會這樣做。

通過user2407038

更多內容如下:

暫無
暫無

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

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