Alexander
и.к. на уровне типов порядок имеет значение
Alexander
и нужно для сравнения пользоваться примитивами дибы
Alexander
либы
Влод
fby больше чем фпконф конечно
там не задают вопросов - что значит ио?
кана
Лол
Alexander
это отсылка к fprog SPb?
Влод
ну да
Alexander
кстати очень интересная для фпрог подборка людей
Alexander
Haskell не так и много знает, много лисперов но много ребят на coq и компании
Alexander
вроде
Влод
да я каждый раз не понимаю что происходит. сообщество очень закрытое, каждый раз на конфу заявляются около-хаскельные люди, а слушают их кложуристы и другие
Влод
почему у этих ребят неугасает интерес. и ещё они вроде журнал писали (откуда столько инициативы при таком мертвом сообществе)
Alexander
какой журнал? фпрог?
Alexander
мне казалось основная часть издательства разъехалась
Влод
какой журнал? фпрог?
да. это просто совпадение что конфа и журнал одноименные?
Alexander
хз
Alexander
ну тех людей что я из журнала помню я не помню на фпрог СПб
Влод
ну ладно. просто кто-то когда-то подтвердил это предположение и я дальше не сомневался
Alex
кложуристы это наверное лавсан?
Alex
он постоянно агитирует идти на питерский фпрог
Alexander
я его там ни разу не видел кстати
Alexander
впрочем я там сам был 2.5 раза
Leonid 🦇
лавсан был оба раза
Alexander
ну значит я его узнаю только на фотках
kosc
Здрасте.
kosc
Подскажите, пожалуйста, нубу, а как объявить функцию, которая принимает 3 Floating и возвращает 1 Complex?
kosc
solveEquation :: (Floating a, Ord a, Complex b) => a -> a -> a -> Solution b Такой вариант не прокатывает.
Alexander
f :: Floating a => a -> a -> a -> Complext a
Andrew
( не успел
Alexander
что такое Solution ?
Alexander
блин что за игры в угадайку с тайпчеккером : (
Andrew
Complex a
Andrew
опечатка
Alexander
да
Alexander
но все ж поняли
kosc
t уже убрал там
kosc
Опечатку
kosc
Solution сейчас покажу
kosc
data Solution a = OneSolution a | TwoSolutions a a | NoSolutions deriving (Show)
Кабачок
Но ведь Complex это не тайпкласс?
Andrew
Посоветуйте книгу после Learn Haskell for great good пожалуйста
Кабачок
https://hackage.haskell.org/package/base-4.10.0.0/docs/Data-Complex.html#t:Complex
Alexander
Prelude Data.Complex> :i Complex data Complex a = !a :+ !a -- Defined in ‘Data.Complex’
Alexander
а почему Complex должен быть классом типов?
Alexander
ааа
Alexander
не обратил внимание
Vasiliy
Посоветуйте книгу после Learn Haskell for great good пожалуйста
RWH - старая, но основные вещи по-прежнему актуальны http://book.realworldhaskell.org/read/
Alexander
видимо это квадратные уравнения?
Alexander
хотя нет
Alexander
там всегда TwoSolutions в комплексных
Alexander
видимо имелось ввиду f :: Floating a => a -> a -> a -> Solution (Complex a)
Alexander
s/имелось/хотелось/
Vasiliy
а вообще, после LYAH, как мне кажется, любая литература пойдёт, пушо в нём кроме смешных картинок особо информации нет..
Andrew
Спасибо!
Alexander
вон у Брагилевского серия обзоров была недавно
Λrtem
Курс на степике?
kosc
solveEquation :: (Floating a, Ord a) => a -> a -> a -> Solution (Complex a)
kosc
Так тоже не пашет.
kosc
Ну я понял, что Complex - не тайпкласс.
kosc
Но я хз теперь, как извернуться.
kosc
Суть в том, что я пытаюсь добавить поддержку комплексных корней в свой старый учебный Haskell-проект: https://github.com/kosc/sqrteq/blob/master/Main.hs
kosc
И пока безуспешно.
kosc
Нашёл конструктор комплексных чисел, методы работы с ними.
kosc
Убедился, что корень извлекается из какого-нибудь (-4) :+ 0
Vasiliy
я взял код, добавил import Data.Complex, добавил Complex в сигнатуру, получил вот что
kosc
Ошибка основана на несоответствии типов.
Vasiliy
Expected type: Solution (Complex a) Actual type: Solution a • In the expression: OneSolution alone
Vasiliy
посмотрел на соответствующую строку - и правда, alone у нас (Floating a, Ord a) => a, а ему нужно Complex a
Vasiliy
дальше рассказывать не буду
kosc
https://dpaste.de/Ge0d
kosc
У меня какая-то более геморойная ошибка, хотя сделал вроде всё тоже самое, не?
kosc
А, ок
Vasiliy
та же самая - строки 49-51
kosc
Вижу
Vasiliy
и вон на 69 строке видно, что alone :: a
Vasiliy
а в сигнатуре-то написано Complex a
kosc
((- c) :+ 0) / b
kosc
Так по идее там должно быть Complex a