Alexander
checkers. Это ж для quick check ?
Evgeniy
https://tproger.ru/translations/becoming-productive-in-haskell/
на аглицки http://mechanical-elephant.com/thoughts/2015-04-20-becoming-productive-in-haskell/
John
Ilya
Из статьи следует, что для того, чтобы стать продактив, нужно понять, что такое монады с помощью LYAH, затем написать маленький модуль, при этом не используя IO, закинуть все на сайт, а затем повозиться с IO
Evgeniy
Alexander
INLINE прагма говорит, что исходный код метода должен быть подставлен вместо indirect (?) вызова в месте применения метода
melvin
let x=1 i x+1 и x+1 where x=1
melvin
в чем разница?
nvkv
в написании
melvin
и все?
nvkv
https://wiki.haskell.org/Let_vs._Where
melvin
я просто ток начал читать про хаскелл и такой вопрос возникает уже не раз
Anatolii
Дальше поймёшь
melvin
nvkv
вон по ссылке пишут, что let ... in ... это выражение
nvkv
а where более другое
nvkv
в контексте дефайна функций разницы почти нет, но вообще есть
Anatolii
В монадках будешь лет ставить
Anatolii
А в простых функциях я where ставлю
Vladislav
Основная разница с точки зрения семантики в том, что let-биндинги по умолчанию ленивые, а where строгие, так что если происходит не просто присвоение переменной, а паттерн-матчинг, то поведение с undefined будет разное.
melvin
Anatolii
Ха, это же в let ты не попатернматчишь
Anatolii
Я как-то не подумал про это
Anatolii
Спасибо
Anatolii
Полезный чатик
Vladislav
Так, а я похоже не прав, where-биндинги тоже ленивые, судя по поведению в GHCi. Хм. Интересно, откуда я взял инфу про то, что они строгие.
Alexander
под ленивыми понималось ~ или просто текущее поведение?
melvin
main = (putStrLn . checkLocalhost) ”173.194.22.100” зачем здесь скобки?
melvin
чеклх возвращает стр если аргумент "0.0.0.0" или "127.0.0.1"
Alexander
чтобы putStrLn . checkLocalhost применялось к "173.."
Alexander
распиши типы всего, а потом для варианта без скобок
Anatolii
а еще можно putStrLn . checkLockalhost $ "here"
Anatolii
как компилятор без скобок поймет из чего ему композицию функций делать?
Anatolii
он захочет чтобы checkLockalhost ”173.194.22.100” возвращало функцию
Anatolii
которую можно скомпоновать с putStrLn
melvin
те композиция функций это новая функция?вроде скобки не обязательны в применении фции
Anatolii
:t одна из самых полезны вещей в ghci
Anatolii
заходишь
Anatolii
играешся
Anatolii
и сразувсе на свои места становится
melvin
melvin
Спасибо.
Anatolii
вот это самое главно в хаскеле
Anatolii
чем раньше ты это поймешт и привыкнешь
Anatolii
тем быстрее пойдет обучение
Anatolii
я когда курсы проходил первые, там препод постоянно показывал типы и гвоорил что надо смотреть на них, я не сразу понимал зачем, но чем дальше - тем они нужнее
Denis
nvkv
Давайте грубо
nvkv
Сравните два описания
nvkv
"Есть труба, на ней написано f, если в один её конец сунуть ведро конфет, с другого конца вылезет конь"
nvkv
и
nvkv
"Есть труба, на ней написано f"
nvkv
которое понятнее?
Anatolii
потом я уже пришел к тому, что нужно спокйоно вчитатся
Evgeniy
Я например смотрю из чего и во что нужно - а там и hoogle помогает
Denis
потом я уже пришел к тому, что нужно спокйоно вчитатся
А, понятно. У меня просто при чтении некоторых статей по хаскелю возникает ощущение, будто автор алгоритм пишет не на логику и функциональное назначение этого алгоритма, а на систему типов. Мол, давайте сделаем функции a -> b -> c и c -> a и получим рабочую программу, которая делает как раз то, что нам нужно.
Anatolii
ну так в этом же и прелесть
Anatolii
пишешь из чего и что ты хочешь получить
Anatolii
а потом имплементируешь:)
Evgeniy
Вот в либах поочти постоянно вижу
пример:
module Web.Telegram.API.Bot
(
module TAPI
) where
import Web.Telegram.API.Bot.API as TAPI
import Web.Telegram.API.Bot.Data as TAPI
import Web.Telegram.API.Bot.Responses as TAPI
import Web.Telegram.API.Bot.Requests as TAPI
интересно для чего так делают?
Alexander
чтобы не писать в exports все что и в imports
Alexander
и чтобы пользователь импортировал только Web.Telegram.API.Bot
Alexander
хотя я не фанат такого подхода, например
ㅤ
а как лучше?
Alexander
не знаю
Alexander
: ]
Alexander
а ticky профиль только по завершению программы пишется, или буффер как и с eventlog?
Evgeniy
Evgeniy
Блин незнаю как BasicAuth побороть(
Evgeniy
Ok, modules loaded: ObTelecom, Main.
*Main ObTelecom> main
Get 1 req
Get 2 req
*** Exception: StatusCodeException (Status {statusCode = 401, statusMessage = "Unauthorized"}) ..........
Vladimir
я вот с авторизацией еще не пробовал. Может, на сервере что-то не так?
Evgeniy
Ну я на голанге и джава делал вроде работало
ㅤ
последнее это login:pass в base64
ㅤ
а ну тогда воссоздать также надо
Evgeniy
Я сессию взал тк он куки должен на несколько запросы отрабатывать
Evgeniy
Сниффером смотрел но https из консоли не увидел - если кто знает сниффер хттпс подкиньте посмотреть
Evgeniy
Кстати хотелось бы отметить на например в голанге 2 раза надо запрос делать - 1й тоже херня а 2й уже то что нужно - хз почему(