[英]what does seq stand for in haskell
我是哈斯凱爾的新手,剛剛來到懶惰的世界。 我讀到seq
函數非常特殊,因為它強制使用嚴格的評估,以便在某些情況下更有效。 但我真的找不到seq
代表什么字面意思。 也許嚴格評價Q * ???
它應該提醒你“順序”或“序列”,因為它允許程序員指定其參數的評估順序。
seq
在返回第二個參數之前計算其第一個參數。 通常通過避免不必要的懶惰來提高性能。 它強制評估功能。
seq :: a -> b -> b
seq _ y = y
這個函數定義包含在
#ifdef __HADDOCK__
所以它只能由haddock(文檔工具)編譯,而不是由實際的編譯器編譯! '真實'seq在GHC.Prim中定義為seq :: a -> b -> b; seq = let x = x in x.
這只是一個虛擬定義。 基本上seq是由編譯器特別處理的語法。 你寫了'seq評估它的第一個參數' - 但是第一個定義顯然不會這樣做。
更多內容如下:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.