Re: Haskell
Ну добре. Візьмемо монаду Maybe. Я її сприймаю як тип з двома конструкторами і відповідно використовую - патерн-матчінг і т. д. Що ще можна з нею робити? Скільки не читав пояснень, далі такого розуміння не просунувся.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Для відправлення відповіді ви повинні увійти або зареєструватися
Ну добре. Візьмемо монаду Maybe. Я її сприймаю як тип з двома конструкторами і відповідно використовую - патерн-матчінг і т. д. Що ще можна з нею робити? Скільки не читав пояснень, далі такого розуміння не просунувся.
Ну добре. Візьмемо монаду Maybe. Я її сприймаю як тип з двома конструкторами і відповідно використовую - патерн-матчінг і т. д. Що ще можна з нею робити? Скільки не читав пояснень, далі такого розуміння не просунувся.
Ну, якщо вас цікавить саме використання її як монади — то її так і використовують. Наприклад, у вас є функція "getParam :: Text -> Request -> Maybe Text", вона повертає GET-параметр запросу, якщо він присутній. Вам треба робити щось корисне лише у разі, коли всі три параметри присутні — то ж ви можете замість
case getParam "a" req of
Just a -> do
case getParam "b" req of
Just b -> do
case getParam "c" req of
Just c -> do ...
Nothing -> handleError
Nothing -> handleError
Nothing -> handleError
ось так зробити
-- ...
let abc = do
a <- getParam "a" req
b <- getParam "b" req
c <- getParam "c" req
return (a,b,c)
case abc of
Just (a,b,c) -> ...
Nothing -> handleError
або ж, використовуючи Applicative-інстанс і TupleSections одразу:
abc <- (,,) <$> getParam "a" req <*> getParam "b" req <*> getParam "c" req
Ну добре. Візьмемо монаду Maybe. Я її сприймаю як тип з двома конструкторами і відповідно використовую - патерн-матчінг і т. д. Що ще можна з нею робити? Скільки не читав пояснень, далі такого розуміння не просунувся.
Але ви повинні розділяти Maybe як звичайний собі тип, і той факт, що його ще й зробили монадою. Могли не робити, для цього просто не реалізовувати "instance Monad Maybe", і все було б чудово, всі були б щасливі, жили б без монадного використання. Тому, можливо вас саме це збило з пантелику?
p.s.: знов вибачте, чомусь листи приходять лише коли до мене надходить пряма відповідь. Не знайшов налаштування, щоб підписатися на всю тему.
k-bx, дозвольте поцікавитись, що ви писали чи пишете на Хаскелі?
Не проблема. Працюю в компанії ThoughtLeadr http://www.thoughtleadr.com/ , наш продукт інтегрують різні веб-сайті для того, щоб показувати рекламу. Друга частина продукту — аналітика щодо реклами, що показувалася. Обидва продукти повністю написані на Хаскелі.
Це, мабуть, вперше бачу комерційне використання Хаскеля. Воно справді виходить так, як в теорії: набагато менше тестів, менше часу на написання? Продуктивність не страждає?
Це, мабуть, вперше бачу комерційне використання Хаскеля. Воно справді виходить так, як в теорії: набагато менше тестів, менше часу на написання? Продуктивність не страждає?
Ну, як мінімум в Києві є ще один проект, пов’язаний з трейдингом на Хаскелі (здається в EPAM), в Одесі є Рома Чепляка, що пише на хаскелі для SignalVine http://www.signalvine.com/ . Тож я точно не перший
Так, вражень багато. В цілому скажу, що продуктивність — як повсюди, спочатку повільно, з часом все швидше й швидше. Але завдяки типам та іншим фішкам — маю більше можливостей для подальшого прискорення, і зараз вже, коли щось пишу на пітоні, мені типів дуже не вистачає, відчуваю, що без них набагато гірше і складніше.
Менше тестів, менше часу на написання, легше розбиратися в чужому коді, а головне — відсутність росту складності роботи з проектом по мірі його розростання. Ну і відсутність страху приймати пул-реквести, не треба боятися, що неправильний символ все поламає.
Короче, воно того варте Звичайно, є моменти, яких не вистачає з динамічного світу, тому, наприклад, функціональні тести маємо на пітоні, хоча чим далі тип більше планую їх звідти забрати. Ще б більше часу на "хакерство".
Сподіваюсь на наступному kyivfprog щось розказати, тож приходьте будь-ласка.
Для відправлення відповіді ви повинні увійти або зареєструватися