2017-06-29 88 views
-1

我是Haskell的新手。我正在讀碼here,我不知道(雖然我猜)是什麼uses做:Haskell:控制鏡頭中的「用途」是什麼?

inRange <- uses fsCurrentCoinRangeUpperBound (coinIndex <=) 

另外,爲什麼的<-被使用?

我擡頭看「控制鏡頭在Haskell中使用」,但我找不到任何解釋。

+1

您已經閱讀[''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

+0

@leftaroundabout感謝您的提示! – user4564798

+0

導航文檔的另一種方式是更快速 - 離線 - 是Dash或Zeal – nicolas

回答

1

先打上「哈斯克爾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函數的文檔。該文檔是否實際上有幫助差異很大...

+0

非常感謝!我看了一下,但我不知道它是「Getter」的一部分。 – user4564798

+1

想一想,你可能已經發現,通過用':i'命令詢問GHCi。我沒有想到這一點。 (我自己沒有安裝這個軟件包。) – MathematicalOrchid

+0

在我看來,這是'lens'文檔的一大缺點。很難說出給定的combinator來自哪裏。我喜歡那裏有一個大的「索引」頁面,列出每個組合器,所以你可以cmd-F並找到你正在尋找的。 –

0

該文檔是類型+ haddoc額外位,反之亦然。

例如,我們可以看到

uses :: MonadState s m => LensLike' (Const r) s a -> (a -> r) -> m r

返回值是像捲餅(因此<-。它給你的當前填充長出更大的捲餅)