Синтаксис Что означает $$ в Haskell? - PullRequest
17 голосов
/ 22 декабря 2011

"Тьфу", вы могли бы подумать ... "Еще один вопрос синтаксиса, позвольте мне гуглить это для вас, нуб". Но увы! Я прогуглил это, и я все еще в тупике!

Найдено в этом коде из блога yesod

import System.IO
import Data.Enumerator
import Data.Enumerator.Binary

main =
    withFile "output.txt" WriteMode $ \output ->
    run_ $ enumFile "input.txt" $$ iterHandle output 

Однако оператор "$$" является новым для меня. В отчете Haskell 2010 он упоминается только один раз как символ оператора. Что оно делает?

Ответы [ 3 ]

20 голосов
/ 22 декабря 2011

В Haskell такие операторы, как $$, не являются частью синтаксиса, они являются определяемыми пользователем функциями. Следовательно, вам нужно найти документацию API *1003* для Yesod, чтобы узнать, что такое $$. В частности, функция $$ из вашего примера документирована здесь .

6 голосов
/ 22 декабря 2011

Есть Hoogle , что довольно хорошо, но, к сожалению, не знает много пакетов.

Hayoo знает намного больше, но его интерфейс кажется странным, и, похоже, он не предлагает инструмент командной строки, как это делает Google.

Если у вас есть представление о том, с каким пакетом вы имеете дело, вы можете напрямую перейти к его документации - например, документы перечислителя пакета , со списком модулей внизу. Кроме того, эти документы всегда имеют индекс и позволяют просматривать исходный код по ссылкам source .

В крайнем случае, используйте cabal unpack enumerator и используйте код grep.

2 голосов
/ 22 декабря 2011

Просто используйте hoogle и обязательно сообщите ему, какие пакеты вы используете - он отлично работает.

http://haskell.org/hoogle/?hoogle=%28%24%24%29+%2Benumerator

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...