@haskellru

Страница 416 из 1551
Hot
19.09.2017
19:51:48
import System.IO import Text.Read import Data.Complex data Solution a = OneSolution a | TwoRealSolutions a a | TwoComplexSolutions a a deriving (Show) prompt :: (Read a) => String -> IO a prompt text = do putStr text hFlush stdout line <- getLine case readMaybe line of Just x -> return x Nothing -> putStrLn "Invalid number entered" >> prompt text solveEquation :: (RealFloat a, Floating a, Ord a) => a -> a -> a -> Solution (Complex a) solveEquation a b c | a == 0.0 = OneSolution alone | d < 0.0 = TwoComplexSolutions x1 x2 | d == 0.0 = OneSolution x1 | d > 0.0 = TwoRealSolutions x1 x2 where d = b*b - 4*a*c x1 = f (+) :+ 0 x2 = f (-) :+ 0 f operator = -b `operator` sqrt d / (2*a) alone = ((-c) :+ 0) / realToFrac b main :: IO () main = do a <- prompt "Input a: " b <- prompt "Input b: " c <- prompt "Input c: " print $ solveEquation a b c

Vasiliy
19.09.2017
19:51:51
я к тому, что сравнивать флоаты так нельзя

Hot
19.09.2017
19:52:14
Оу, сорян, хз, зачем сюда спастил.

Ну я хз, как сделать.

Google
Hot
19.09.2017
19:52:38
Там сначала 0 был

Alexander
19.09.2017
19:52:50
@hotkosc это цитата из кода

Hot
19.09.2017
19:52:51
Но потом мне кто-то сказал, что с 0.0 более правильно, так как там Floating.

Alexander
19.09.2017
19:53:08
флоаты конечно нельзя сравнивать так

Artem
19.09.2017
19:53:22
в числах с плавающей точкой есть погрешность

Alexander
19.09.2017
19:53:25
впрочем там при b == 0 все равно проблема

Hot
19.09.2017
19:53:34
Так

Alexander
19.09.2017
19:53:39
http://hackage.haskell.org/package/ieee754-0.8.0/docs/Data-AEq.html

~== то, что интересует

@hotkosc кстати поменяй Solution тип

data Solution a = One a | TwoReal a a | TwoComplex (Complex a) (Complex a)

с другой стороны это не достаточно обще ?

т.к. почему запрещено агрументы комлексные иметь

Google
Alexander
19.09.2017
19:58:32
но пофиг

ещё можно добавить NoSolution для случай solve 0 0 1

ну или какое исключение

Hot
19.09.2017
20:08:14
Это да

Ладно, я на сегодня наверное свернусь, всем большое спасибо.

Завтра попробую допилить.

Блин, насколько это проще всё может быть: https://rosettacode.org/wiki/Roots_of_a_quadratic_function#Haskell

Вообще дичь

Pavel
19.09.2017
20:12:11
Блин, насколько это проще всё может быть: https://rosettacode.org/wiki/Roots_of_a_quadratic_function#Haskell
а потом пытаешься решить общее полиномиальное уравнение и становится грустно :с

Hot
19.09.2017
20:13:30
Всмысле, оно ещё проще?

Pavel
19.09.2017
20:14:21
Всмысле, оно ещё проще?
не совсем точнее совсем нет не существует общего аналитического способа решить уравнение P(x) = 0, где P(x) некий полином от x

Hot
19.09.2017
20:16:35
А, всё, понял.

Alexander
19.09.2017
20:19:26
ну тот вариант падает при a == 0

Pavel
19.09.2017
20:20:00
Alexander
19.09.2017
20:20:04
b=+-d (это возможно?)

да

другое дело, что это нормально отдавать на откуп вызывающему

Alexander
19.09.2017
22:21:24
вот кстати жалко что алгоритмы разные принципиально

хотя у го весьма дурное

Google
Alexander
19.09.2017
22:57:38
я сегодня ещё не ругался на mtl?

Quet
19.09.2017
23:29:29
все плохо?

Alexander
20.09.2017
06:22:20
я даже не знаю как сформулировать, но в комбинации с MonadBaseControl в случае ошибок типов, ghc выдает нерелеватную фигню

по которой понять ошибку невозможно

кстати понять что было не так я так и не смог, в итоге переписал по другому

аналогичный код работает в другом месте, такое ощущение что ghc чудит

Hot
20.09.2017
07:08:01
Давайте, пишите сюда какие-нибудь сниппеты на хачкеле, я буду читать и попытаюсь вникнуть и разобраться.

А то что-то никого экшона.

Dmitry
20.09.2017
07:10:17
rosetta code

kir
20.09.2017
07:26:07
@hotkosc fix f = x where x = f x

戲劇顧問
20.09.2017
07:28:44
pascal = iterate $ \row -> zipWith (+) ([0] ++ row) (row ++ [0])

Denis
20.09.2017
07:29:31
и?

戲劇顧問
20.09.2017
07:29:57
Ваш экшон

Denis
20.09.2017
07:31:25
у меня такой)) pascal' :: Int -> [[Int]] pascal' n | n <= 0 = [] | otherwise = ana psi [1] where psi = \case (length -> x) | x == (n + 1) -> Nil x -> Cons x (zipWith (+) ([0] <> x) (x <> [0]))

Alexander
20.09.2017
07:49:32
@hotkosc hackage://base

Hot
20.09.2017
07:49:50
И то верно.

Но с розеттой мне совет больше понравился.

Alexander
20.09.2017
07:54:25
можно project euler-овские смотреть ещё задачи

там есть решения первой сотни, пытаться самому решить и посмотреть код потом

Google
illiatshurotshka❄️
20.09.2017
07:58:54
а есть пример использования метаморфизма?

Denis
20.09.2017
08:01:44
метаморфизм это дуализм к хиломорфизму

Светочка
20.09.2017
08:04:45
☣️ВНИМАНИЕ ЕСТЬ РАБОЧЕЕ ПРЕДЛОЖЕНИЕ☣️ ☣️? РАБОТА В БЛИЖНЕМ ЗАРУБЕЖЬЕ ?☣️ - ВОДИТЕЛЯ ( ? 500 у.е. рейс - месяц ? 4000 у.е. ) - РАБОТНИК СКЛАДА ( от ? 600 у.е до ? 850 у.е неделя ) ОФОРМЛЕНИЕ НА РАБОТУ В ГОРОДЕ КИЕВЕ. ДОХОД ? НЕ ФИКСИРОВАН , ЗАВИСИТ ТОЛЬКО ОТ ?? ВЫРАБОТКИ , ПРОВОДИТСЯ СТАЖИРОВКА И ОБУЧЕНИЕ ЗА НАШ СЧЕТ. ЖИТЕЛЕЙ ДРУГИХ ГОРОДОВ И СТРАН ПРЕДЛАГАЕМ РАБОТУ И ПРОЖИВАНИЕ. БЕЗ ВЛОЖЕНИЙ! ТРЕБОВАНИЯ К РАБОТНИКУ: - ПОЛНЫХ 18 ЛЕТ. ? - АДЕКВАТНОСТЬ. ⚠️✅ - ПРАВА МИНИМУМ КАТЕГОРИИ "В" ?. - УМЕНИЕ ПОЛЬЗОВАТЬСЯ СМАРТФОНОМ (НЕ КАТЕГОРИЧНО). ? - ЦЕЛЕУСТРЕМЛЕННОСТЬ ↗️. ОФОРМЛЕНИЕ НА РАБОТУ - ПО ДОКУМЕНТАМ ? + АНКЕТКА?. ПИСАТЬ МЕНЕДЖЕРУ В ЛИЧКУ - ☎️ https://t.me/WH1000 ⚖️

Kirill
20.09.2017
08:05:33
Киньте бан, а

ParkeT
20.09.2017
08:05:51
Лол. Господа хаскелисты, никто не хочет дальнобоем поработать? ?

Dmitry
20.09.2017
08:06:18
я хотел бы пилотом гражданской авиации. но когда я это понял, я уже слишком старый был

до 30-ти лет были бы шансы

нескольких людей знаю, которые из IT пошли в пилоты.

ParkeT
20.09.2017
08:06:40
А в чём проблема то?

Dmitry
20.09.2017
08:07:12
старый, пока обучусь, пока здоровье приведу в порядок - операции на глазах и т.п. есть мнение, что это все не окупится до момента выхода на пенсию

т.е праваки много не зарабатывают, а до КВС-а уже не успею

ParkeT
20.09.2017
08:07:27
Упирается в деньги всё. 10к$ и будет у тебя лицензия.

Dmitry
20.09.2017
08:07:29
а вот мой знакомый так стал КВС-ом

ParkeT
20.09.2017
08:07:56
А, здоровье. Ясно.

Dmitry
20.09.2017
08:10:15
ну это не фатальная проблема - просто глаза починить, все так и делают

Alexander
20.09.2017
08:15:44
это не кто-то из ушедших из IT-шников недавно разбился?

Dmitry
20.09.2017
08:16:56
ну этого я не знал

Anton
20.09.2017
08:17:18
А есть какая-то статистика по смертности среди пилотов гр. авиации? Это в среднем опасная профессия или нет? (сорри за оффтоп)

Dmitry
20.09.2017
08:17:23
нет

статистику не знаю, но профессия не особо опасная

Google
Yurii
20.09.2017
08:18:11
т.е праваки много не зарабатывают, а до КВС-а уже не успею
Пилот-любитель дешевле, меньше требования по здоровью. А как получишь, может, и не захочешь летать

Dmitry
20.09.2017
08:18:36
https://understandinguncertainty.org/node/243

illiatshurotshka❄️
20.09.2017
08:19:01
Dmitry
20.09.2017
08:19:13
@ukunsun ну мы про профессию говорим

Alexander
20.09.2017
08:19:15
имелось ввиду, что структура dual?

Denis
20.09.2017
08:19:37
да, дуальная конструкция

как наример ката-ана, пара-апо

Dmitry
20.09.2017
08:19:54
@ukunsun пилот-любитель это хобби, мне скайдайва хватает за глаза, авиация - дороже

illiatshurotshka❄️
20.09.2017
08:23:00
да, дуальная конструкция
это когда в категории стрелочки перевёрнуты?

illiatshurotshka❄️
20.09.2017
08:23:22
аа

а как это в хаскеле выражается?

Denis
20.09.2017
08:25:46
произведение и копроизведение

Yurii
20.09.2017
08:30:06
@ukunsun ну мы про профессию говорим
Дообучиться проще с любителя. Прошу простить за рекламу, но ЧелАвиа обучают (в том числе и до уровня профессии), и рекомендуют сначала любителя, а потом решать.

illiatshurotshka❄️
20.09.2017
08:31:50
например (,) и Either
ну а как например определить дуальность не имея теоркатного представления

Страница 416 из 1551