Aleksei (astynax)
дальнейшие flip не меняют тип
Alex
Помогите пожалуйста
Alex
xs <- getArgs str <- unsafePerformIO $ readFile $ (xs !! 0)
Alex
Где ошибка
Aleksei (astynax)
Воу! Зачем unsafePerformIO?
Aleksei (astynax)
Всё в IO же и так
Aleksei (astynax)
xs <- getArgs str <- readFile $ (xs !! 0)
Alex
У меня там дальше функция которая работает со стрингой а не ио стрингой
Aleksei (astynax)
str, это String
Alex
Точно
Alex
Блин
Alex
Thx
Aleksei (astynax)
unsafePerformIO не нужно делать никогда! Кроме тех случаев, когда это действительно нужно (ну очень редко и практически всегда - на top level)
Alex
А это и был топ левел
Alex
Там все ок
Alex
Я просто забыл его убрать
IC
LTS-12 будет с 8.4 или опять с 8.2?
Andrei
8.4 вроде
Kirill
LTS-12 будет с 8.4 или опять с 8.2?
https://www.stackage.org/blog/2018/06/upcoming-lts-12-ghc-8-4-3
Aleksei (astynax)
А это и был топ левел
Это не был top-level
Aleksei (astynax)
top level, это module Foo where a :: Int a = unsafePerformIO $ randomRIO (0, 10)
Aleksei (astynax)
вот определение a - на top level находится
Ilya
А это и был топ левел
топ левел это что можно вывести с ghci
Aleksei (astynax)
нет, в ghci можно делать байнд
Aleksei (astynax)
В GHCi всё находится в неявном do-блоке монады IO
Aleksei (astynax)
Но специфическом - объявлять типы можно, например
Cheese
top level, это module Foo where a :: Int a = unsafePerformIO $ randomRIO (0, 10)
вот ему сейчас это скорее помешает. не надо сразу все краевые случаи вываливать
Aleksei (astynax)
Тут любят советовать unsafePerformIO, вот от этого получаются подобные казусы
Cheese
Тут любят советовать unsafePerformIO, вот от этого получаются подобные казусы
общее правило — unsafe не нужен (если он тебе действительно нужен, ты не будешь спрашивать в чате)
Aleksei (astynax)
ага
Alex
Спасибо всем
Aliester
где в описании технологии какой читал
Alexander
я не согласен с таким подходом, но ок
Alexander
тут в канале любят говорить, что такая штука есть, но в этой задаче оно не нужно
Alexander
и добавлять в какого рода задачах оно может быть нужно
Andrei
unsafePerformIO в недрах Network.Socket есть. но и там оно форсится.
Cheese
и добавлять в какого рода задачах оно может быть нужно
если спрашивают про задачу А, немного странно отвечать, что задача Б решается инструментом В
Alexander
когда я последний раз говорил про unsafePerformIO , спрашивали про задачу, которая именно им и решается, например
Alexander
другое дело, что человек хотел не то, что спрашивал
Alexander
но мое дело сказать что задача скорее всего не верна, что должна быть та, и решается так, а спрошенное тоже имеет решение
Alexander
я помню как у меня бобмило, когда я пришел на #haskell спросить про #-обьекты, и мне там хором стали доказывать, что оно мне не надо
Alexander
учитывая, что именно это мне и было нужно
Kirill
а что такое "#-обьекты"?
Алексей
OverloadedLabels?
Kirill
@qnikst ^
A64m
у которых тип кайнда # видимо
Kirill
объекты ~ типы чтоль?
A64m
значения, населяющие типы
Kirill
а, значения, спсб
Leonid 🦇
что-то Тони совсем подпалило https://github.com/tonymorris/do-not-use-stack
Aliester
Aliester
лаконичность сестра таланта
Alexander
@qnikst ^
клапауций верно сказал
Aleksei (astynax)
лаконичность сестра таланта
там всё в исходниках же
Aleksei (astynax)
Cheese
политика одной хаскельной компании Every programmer that uses unsafePerformIO without an accompanying proof will have to spend a night in the dungeon. https://www.fpcastle.com/
Cheese
..without an accompanying proof
это только для профессионалов такое послабление
Kai
Прямо сейчас удаляю стак
Warren
может кто-нибудь подсказать хороший русский перевод для термина "equational reasoning"?
Dmitry
Эквациональные рассуждения?
Dmitry
(простите)
Cheese
Эквациональные рассуждения?
да, именно так переводили до сих пор
Warren
блин. я думал только гугл транслейт так надо мной пошутил
Warren
но ок, спасибо. словарик полезен
Vladislav
чего как "суждение равенствами" не перевели 😒
Kirill
и за это будете осуждены...
Aliester
равностные суждения
Vladislav
спроси у переводчиков
я жалуюсь, я не спрашиваю
Vladislav
понятно, что в Wiki оно попало как в источнике (иначе бы я просто молча поправил Wiki)
Cheese
я бы перевёл "(рас)суждение в уравнениях"
Ilya
https://github.com/ruHaskell/ruhaskell/wiki/Translation
>free monad — свободная монада >freer monad — монада посвободнее