Синтаксис Что означает $$ в 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 через код.
Ответ 3
Просто используйте hoogle и обязательно расскажите, какие пакеты вы используете - он отлично работает.
http://haskell.org/hoogle/?hoogle=%28%24%24%29+%2Benumerator