我是Haskell的新手。我正在讀碼here,我不知道(雖然我猜)是什麼uses
做:Haskell:控制鏡頭中的「用途」是什麼?
inRange <- uses fsCurrentCoinRangeUpperBound (coinIndex <=)
另外,爲什麼的<-
被使用?
我擡頭看「控制鏡頭在Haskell中使用」,但我找不到任何解釋。
我是Haskell的新手。我正在讀碼here,我不知道(雖然我猜)是什麼uses
做:Haskell:控制鏡頭中的「用途」是什麼?
inRange <- uses fsCurrentCoinRangeUpperBound (coinIndex <=)
另外,爲什麼的<-
被使用?
我擡頭看「控制鏡頭在Haskell中使用」,但我找不到任何解釋。
先打上「哈斯克爾control.lens」谷歌搜索給了我這樣的:
https://hackage.haskell.org/package/lens-4.15.3/docs/Control-Lens.html
...的鏡頭包,其中uses
功能來自於文檔。從那裏,確定哪個確切的模塊定義這個函數並不是直接的。事實證明,這是Control.Lens.Getter
:
https://hackage.haskell.org/package/lens-4.15.3/docs/Control-Lens-Getter.html#v:uses
所以這就是你如何追查隨機Haskell函數的文檔。該文檔是否實際上有幫助差異很大...
非常感謝!我看了一下,但我不知道它是「Getter」的一部分。 – user4564798
想一想,你可能已經發現,通過用':i'命令詢問GHCi。我沒有想到這一點。 (我自己沒有安裝這個軟件包。) – MathematicalOrchid
在我看來,這是'lens'文檔的一大缺點。很難說出給定的combinator來自哪裏。我喜歡那裏有一個大的「索引」頁面,列出每個組合器,所以你可以cmd-F並找到你正在尋找的。 –
該文檔是類型+ haddoc額外位,反之亦然。
例如,我們可以看到
uses :: MonadState s m => LensLike' (Const r) s a -> (a -> r) -> m r
返回值是像捲餅(因此<-
。它給你的當前填充長出更大的捲餅)
您已經閱讀[''uses''上的_documentation_](http://hackage.haskell.org/package/lens-4.15.3/docs/Control-Lens-Getter.html#v使用),並知道如何[一般查找文檔] (https://hayoo.fh-wedel.de/?query=uses)?依靠谷歌找出Haskell的一些功能是很少有意義的,Hoogle和Hayoo的具體引擎要好得多。 – leftaroundabout
@leftaroundabout感謝您的提示! – user4564798
導航文檔的另一種方式是更快速 - 離線 - 是Dash或Zeal – nicolas