Синтаксис Что означает $$ в Haskell?

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

Найдено в этом коде из блога 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 ответа

Решение

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

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

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

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

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

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

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

Другие вопросы по тегам