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

"Ух, ты можешь подумать..." Еще один вопрос синтаксиса, здесь позволь мне сделать это для тебя, нобо ". Но увы! У меня есть googled, и я все еще в тупике!

Найдено в этом коде из блога 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 упоминается только один символ оператора. Что оно делает?

Ответы

Ответ 1

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

Ответ 2

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

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

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

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