Запитання з тегом «haskell»

Функціональна мова програмування

6
Що саме робить систему типу Haskell настільки шанованою (проти скажімо, Java)?
Я починаю вивчати Хаскелл . Я дуже новачок у цьому, і я просто читаю пару онлайн-книг, щоб обернутися головою навколо її основних конструкцій. Один із «мемів», про які часто говорили знайомі з ним, - це ціла річ, «якщо вона збирається, вона буде працювати *» - що, на мою думку, пов’язане …

2
Що таке “Вільний монад + перекладач”?
Я бачив людей, що розмовляють про Вільну Монаду з Інтерпретатором , особливо в контексті доступу до даних. Яка ця закономірність? Коли я можу захотіти ним скористатися? Як це працює, і як би я його реалізував? Я розумію (з повідомлень , таких як це ) , що мова йде про відокремлюючи …

4
Чи формально система типу Haskell еквівалентна Java? [зачинено]
Я усвідомлюю, що деякі речі легші / складніші в одній мові, ніж інші, але мене цікавлять лише функції, пов'язані з типом, які можливі в одній, а в іншій неможливі / неактуальні. Щоб зробити його більш конкретним, давайте ігноруємо розширення типу Haskell, оскільки там так багато, що роблять усілякі шалені / …

4
яке призначення стрілок?
Я вивчаю функціональне програмування з Haskell, і намагаюся схопити поняття, спочатку зрозумівши, для чого вони мені потрібні. Я хотів би знати мету стрілок у функціональних мовах програмування. Яку проблему вони вирішують? Я перевірив http://en.wikibooks.org/wiki/Haskell/Understanding_arrows та http://www.cse.chalmers.se/~rjmh/afp-arrows.pdf . Все, що я розумію, - це те, що вони використовуються для опису графіків …

7
Як ви кодуєте алгебраїчні типи даних мовою C # - або Java?
Існують деякі проблеми, які легко вирішуються алгебраїчними типами даних, наприклад, тип списку може бути дуже коротко виражений як: data ConsList a = Empty | ConsCell a (ConsList a) consmap f Empty = Empty consmap f (ConsCell a b) = ConsCell (f a) (consmap f b) l = ConsCell 1 (ConsCell …

1
Як ви проектуєте програми на Haskell або інших функціональних мовах програмування?
У мене є досвід роботи з об'єктно-орієнтованими мовами програмування, такими як c # або ruby. Я знаю, як проектувати програму в об'єктно-орієнтованому стилі, як створювати класи та об'єкти та як визначати відносини між ними. Я також знаю деякі схеми дизайну. Як люди пишуть функціональні програми? Як вони починаються? Чи існують …

5
Чи є якісь недоліки або проблеми з Haskell?
Я дивлюся на занурення в Хаскелл для мого наступного (відносно тривіального) особистого проекту. Причини, з якими я борюся з Haskell,: Введіть мою голову в чисто функціональну мову Швидкість. Хоча я впевнений, що це можна стверджувати, профілюючи, що я бачив нігті Haskell близькі до C ++ (і, здається, зовсім трохи швидше, …
47 haskell 

5
Критика монади IO розглядається як державна монада, що діє на світ
IOМонада в Haskell часто пояснюється як державної монади , де держава є світ. Таким чином, значення IO aмонади типу розглядається як щось подібне worldState -> (a, worldState). Деякий час тому я прочитав статтю (або повідомлення в блозі / списку розсилки), в якому критикував цю точку зору і наводив кілька причин, …

2
Чому (або чому ні) екзистенційні типи вважаються поганою практикою функціонального програмування?
Які методики я можу використовувати, щоб послідовно рефакторний код видалити залежність від екзистенційних типів? Зазвичай вони використовуються для дискваліфікації небажаних конструкцій вашого типу, а також для забезпечення споживання з мінімальними знаннями про даний тип (або так я розумію). Хто-небудь придумав простий послідовний спосіб зняти залежність від них у коді, який …

3
Які переваги використання LISP та Haskell? Чи зроблять мене кращим програмістом? [зачинено]
Я знаю, що Lisp та Haskell - це логіка і функціональна мова програмування відповідно, але що це означає? Чим вони відрізняються від інших мов? Я чув, що вивчення цих питань зробить вас кращим програмістом та покращить вашу логіку. Це правда, і якщо я перейду вивчити Лісп або Хаскелл на компетентний …
41 haskell  lisp 

7
Haskell AND Lisp vs. Haskell OR Lisp [закрито]
В даний час я кодую з C, C ++ та Python. Я хочу підібрати функціональну мову програмування, і зараз я схиляюся до Haskell. Я НЕ хочу тут починати війну "Haskell vs Lisp"; що я хочу знати, це таке: якщо я навчусь Haskell в основному для впливу функціонального програмування, які переваги, …

2
Помилкові уявлення про суто функціональні мови?
Я часто стикаюся з такими твердженнями / аргументами: Чисті функціональні мови програмування не допускають побічних ефектів (і тому мало корисні на практиці, оскільки будь-яка корисна програма має побічні ефекти, наприклад, коли вона взаємодіє із зовнішнім світом). Чисті функціональні мови програмування не дозволяють писати програму, яка підтримує стан (що робить програмування …

2
Чи використовують сучасні мови генератори парсера?
Я досліджував про набір компіляторів GCC на вікіпедії тут , коли це придумав: GCC почав використовувати парсери LALR, створені разом із Bison, але поступово перейшов на рукописний рекурсивно-десертний парсер; для C ++ в 2004 році, а для C і Objective-C в 2006 році. В даний час усі передні торці використовують …

5
«Доказом є програма; формула, яку він доводить, є типом для програми »
Це може бути питання філософського типу, але я вважаю, що на нього є об'єктивна відповідь. Якщо ви читаєте статтю вікіпедії про Haskell, ви можете знайти таке: Мова вкорінена в спостереженнях Haskell Curry та його інтелектуальних нащадків, що "доказ - це програма; формула, яку вона доводить, є типом для програми". Тепер …
37 haskell 

7
Які функціональні еквіваленти обов'язкових заяв про перерви та інших перевірок циклу?
Скажімо, я нижченаведена логіка. Як це записати у функціональне програмування? public int doSomeCalc(int[] array) { int answer = 0; if(array!=null) { for(int e: array) { answer += e; if(answer == 10) break; if(answer == 150) answer += 100; } } return answer; } Приклади в більшості блогів, статей ... Я …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.