Alexander
и.к. на уровне типов порядок имеет значение
Alexander
и нужно для сравнения пользоваться примитивами дибы
Alexander
либы
кана
Лол
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
не обратил внимание
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
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