Синтаксис Что означает $$ в 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