Leonid 🦇
сейчас будут гербалайф или биткоины толкать
A64m
один (как минимум) из пяти окамлист
Dmitry
Да ладно, что вы так. Просто заготовьте ответы на три вопроса: 1) какие книги читать, 2) какую IDE использовать, 3) применяется ли Haskell в продакшене.
A64m
1) никакие 2) никакую 3) нет
Ilya
Ubuntu 18.04, стоит GHC 8.0.2, в попытках что-то сомпилить с -fllvm говорит, что Warning: Couldn't figure out LLVM version! Make sure you have installed LLVM 3.7 При этом по sudo apt install llvm ставится llvm-6.0 Что делать
A64m
поставить 8.2 или 8.4 для начала, они вроде работают с llvm 6 (но оба будут жаловаться, правда)
Dmitry
Ну оно ж собирается и работает?
Ilya
Ну оно ж собирается и работает?
нет, ничего не собирается
A64m
можно поставить другую версию llvm и указывать в параметрах ghc какие opt и llc использовать
Ilya
или можно как-то ещё поставить, я просто стэком так и не научился пользоваться
A64m
стэк то есть?
не обязательно https://www.haskell.org/downloads/linux
Cheese
ppa:hvr, возможно, ещё живой
Cheese
если HVR ещё не ушёл на стэк
A64m
а я на что ссылку дал по вашему?
Cheese
действительно, там ppa:hvr упоминается
Ilya
не обязательно https://www.haskell.org/downloads/linux
спасибо, получилось, поставил ghc 8.4.3 через ppa:hvr, теперь всё работает You are using an unsupported version of LLVM! Currently only 5.0 is supported. We will try though...
Ilya
ppa:hvr, возможно, ещё живой
долгих лет жизни ему
Зигохистоморфный
интересно, есть линзы из тип суммы и можно ли как-то сделать view (l1 or l2 or l3)? чтобы выбирать линзу как-то автоматически
кана
линзы из суммы называются призмы
кана
и можно вроде (чтобы получить в сумме тоже призму, то есть не view будет)
кана
но если немного поиграться с тайплевелом, то наверное можно будет и из призм собраться линзу
A64m
есть разве что такая штука http://hackage.haskell.org/package/lens-4.17/docs/Control-Lens-Traversal.html#v:failing
A64m
> Left 1 ^? failing _Left _Right Just 1 > Right 1 ^? failing _Left _Right Just 1
A64m
p1 `failing` p2 `failing` p3
кана
ну линзу это не даст, только призму
кана
для генерации линзы нужно по типу генерить список конструкторов, както-то вычитать из списка конструкторов конструкторы для призмы, и делать линзу когда список пустой
Vladislav
если HVR ещё не ушёл на стэк
не могу понять, какой это уровень иронии
Vladislav
5-й или 17-й
Cheese
несколько уровней, объединённых в стэк
Aliester
https://twitter.com/Hillelogram/status/1019051564776878080
A64m
https://twitter.com/d6/status/1009305263235616769
Ilya
https://twitter.com/Hillelogram/status/1019051564776878080
так нет же ничего лучше оптического анализа кода
Aliester
нужно создать CV-нейросеть которая будет по оптическим образцам и с учителем-программистом который будеть ревювать и задавать коффы определять есть ли баги в коде или нет методом анализа форм и кластеров изображения
Ilya
а потом натравить её на собственный код
Ilya
и через несколько дней наблюдать закат человеческой цивилизации
Алексей
Та третьей итерации она перестанет компилиться
кана
достаточно ей поправить код компилятора, чтобы продолжить компилиться
Aleksei (astynax)
https://twitter.com/Hillelogram/status/1019051564776878080
> is this a markov chain самый лучший пост в треде
Anatolii
когда-то закончится война "типистов" и "не тепистов"?:)
Ilya
Сегодня в маршрутке хаскеллист лет 34х спросил чат: "А если всем попросить бога, он выключит войну типистов и не тепистов?" С клапауцием плакала половина чата... Боже, выключи войну!!!
Aliester
типические чистки и статические лагеря
Dmitry
какой тайпкласс лучше использовать, когда есть что-то с нулевым (умолчательным?) элементом, но при этом не моноид?
Алексей
Default из Data.Default.Class ?
Ilya
кроме нулевого элемента что есть?
Dmitry
потому что mappend не удовлетворяет законам
Aleksei (astynax)
Хотя не, магма тоже опрецию имеет, просто не ассоциативную
Ilya
по-моему @qnikst что-то такое спрашивал давно
Ilya
и ему нашли тогда
Alexander
не помню ответа
Alexander
но наверное был
Aleksei (astynax)
Непонятно, как может быть нейтральный элемент, если нет операции?
Dmitry
default
eahqzsr
Она может быть неассоциативна
Aleksei (astynax)
Тогда точно Магма
Aleksei (astynax)
У магмы операция есть, но ассоциативность не гарантируется
кана
так у магмы и нуля нет
кана
а тут вроде только нуль нужен
Aleksei (astynax)
Магмоид
Aleksei (astynax)
Нуль относительно чего, если операции нет?
кана
тут нужен специальный класс под задачу и домен, который отдает НУЖНЫЙ дефолтный элемент под задачу
Aleksei (astynax)
Default :)
кана
потому в общем случае эта задача нерешаема, не понятно, дефолтный для чего элемент типа вот что дефотный для Int
eahqzsr
Что значит дефолтный
Aleksei (astynax)
Дефолтный /= identity element
Ilya
так я и говорю, про дефолтный элемент сказал, а что ещё в классе есть?
Dmitry
ладно. когда моноид я обычно считаю, что это mempty
Ilya
кроме этого элемента?
Dmitry
но бывет и не моноид
Алексей
Вот есть набор параметров для какого-нибудь численного алгоритма. И есть значения по умолчанию
Dmitry
для инта это обычно ноль