Имбирь - твой спиритический овощ. Войти !bnw Сегодня Клубы

Ох уж эти ваши хаскели. Захотел простую опцию в командную строку запилить. Гуглом нашёл имеющийся из коробки System.Console.GetOpt. Читаю (и пытаюсь адаптировать) второй пример внизу:

...

         (o,n,[]  ) -> return (foldl (flip id) defaultOptions o, n)
...

Что за flip id?

λ> :type flip
flip :: (a -> b -> c) -> b -> a -> c
λ> :type id
id :: a -> a
λ> :type (flip id)
(flip id) :: b -> (b -> c) -> c

Поломал 10 минут голову пока примерно не понял что происходит. Ну, ок, идём дальше:

        (OptArg ((\ f opts -> opts { optOutput = Just f }) . fromMaybe "output")

Что за fromMaybe "output"? То мы сверху defaultOptions делаем, то мы снова делаем что-то подобное им, только ещё и неясно зачем "output". Убрал fromMaybe-часть, поборолся с компилятором и понял, что эта "магия" именно потому, что там у нас уже точно будет Just значение, но мы всё равно получим Maybe foo. Короче чисто чтоб компилятор успокоить.

В общем, люблю хаскель, с пользой поупражнялся в типах.

Рекомендовали: @ulidtko
#GFOKXZ / @kb / 3859 дней назад

а кроме аннотаций типов никакую справку посмотреть нельзя штоле? она есть?
#GFOKXZ/3X3 / @238328 / 3859 дней назад
я бы не назвал это пользой. Это скорее уебанство со стороны аффтаров библиотеки.
#GFOKXZ/GI5 / @gds / 3859 дней назад
@gds Ну да. Лень выбирать среди ~7 остальных библиотек ради пары опций.
#GFOKXZ/XM4 / @kb --> #GFOKXZ/GI5 / 3859 дней назад
@238328 Это я как раз со справкой и рпзбираюсь (с примером использования).
#GFOKXZ/V92 / @kb --> #GFOKXZ/3X3 / 3859 дней назад
@kb удобно
#GFOKXZ/64S / @238328 --> #GFOKXZ/V92 / 3859 дней назад
перд
#GFOKXZ/DE5 / @ulidtko / 3859 дней назад
@gds тупой штоле, он же так и написал // как? — иронично
#GFOKXZ/Z2X / @ulidtko --> #GFOKXZ/GI5 / 3859 дней назад
кароч строишь себе такой парсер командлайна @ а тут пофлипать айди заставляют
#GFOKXZ/2DV / @ulidtko / 3859 дней назад
@ulidtko > флипать айди нет
#GFOKXZ/Y90 / @238328 --> #GFOKXZ/2DV / 3859 дней назад
@238328 чо нет, там написано так // пук
#GFOKXZ/N4I / @ulidtko --> #GFOKXZ/Y90 / 3859 дней назад
@ulidtko тупой, да. А ты острый дохуя штоле а?
#GFOKXZ/6DF / @gds --> #GFOKXZ/Z2X / 3859 дней назад
@gds нет. тупой. // ппц ты канеш
#GFOKXZ/ZWQ / @ulidtko --> #GFOKXZ/6DF / 3859 дней назад
#GFOKXZ/C7V / @gds --> #GFOKXZ/ZWQ / 3859 дней назад
@ulidtko нет, там другое написано // среньк
#GFOKXZ/MAV / @238328 --> #GFOKXZ/N4I / 3859 дней назад
@gds залупа от хуя // ГАГАГА
#GFOKXZ/4UR / @ulidtko --> #GFOKXZ/C7V / 3859 дней назад
#GFOKXZ/HCL / @238328 --> #GFOKXZ/ZWQ / 3859 дней назад
@ulidtko Так!
#GFOKXZ/OVX / @gds --> #GFOKXZ/4UR / 3859 дней назад
@ulidtko флипаю с 13ти лет
#GFOKXZ/KSI / @kb --> #GFOKXZ/2DV / 3858 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.