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

Haskell - це функціональна мова програмування, яка відрізняється сильним статичним введенням тексту, лінивою оцінкою, широкою підтримкою паралелізму та одночасності та унікальними можливостями абстрагування.

5
Хороші стандарти кодування Haskell
Хтось може надати посилання на хороший стандарт кодування для Haskell? Я знайшов це і це , але вони далеко не всеосяжні. Не кажучи вже про те, що HaskellWiki включає такі "дорогоцінні камені", як "обережно користуватися класами" і "визначення символічних ідентифікаторів інфіксів слід залишати лише авторам бібліотек".

4
Як запустити файл Haskell в інтерпретованому режимі
Мені сказали, що ви можете інтерпретувати файли Haskell (що, я припускаю, означає, що вони будуть працювати як Ruby / Python / Perl). Однак я не можу знайти опцію командного рядка на GHC для цього. Він завжди хоче скомпілювати мій файл. Подивився на GHCi також, але це завжди скидає мене на …

14
Декартовий твір з 2 списків у Хаскелі
Я хотів би виготовити декартовий продукт із двох списків у Хаскелі, але я не можу зрозуміти, як це зробити. Декартовий продукт містить усі поєднання елементів списку: xs = [1,2,3] ys = [4,5,6] cartProd :: [a] -> [b] -> [(a,b)] cartProd xs ys ==> [(1,4),(1,5),(1,6),(2,4),(2,5),(2,6),(3,4),(3,5),(3,6)] Це не справжнє запитання домашнього завдання …

3
Що саме означає "часткова функція" у функціональному програмуванні?
На моє розуміння, часткові функції - це функції, які ми отримуємо, передаючи менші параметри функції, ніж очікувалося. Наприклад, якщо це було прямо дійсним у Python: >>> def add(x,y): ... return x+y ... >>> new_function = add(1) >>> new_function(2) 3 У фрагменті, наведеному вище, new_functionє часткова функція. Однак, згідно з Haskell …

2
Як зменшити дублювання коду при роботі з рекурсивними типами сум
Зараз я працюю над простим перекладачем мови програмування, і у мене є такий тип даних: data Expr = Variable String | Number Int | Add [Expr] | Sub Expr Expr І у мене є багато функцій, які виконують прості речі, такі як: -- Substitute a value for a variable substituteName …

5
Чи є шанс написати «С мажор» замість «мажор С»?
Я зіткнувся з невеликим естетичним питанням у своєму музичному проекті, і це мене клопоче вже певний час. У мене є тип, data Key = C | D | ...і я можу побудувати букву Scaleвід a Keyі a Mode. У Modeрозрізняє , наприклад , великий і незначний масштаб. Я можу визначити …
39 haskell  dsl 

3
Чому доступ до System.Info не вважається операцією вводу-виводу в Haskell?
У модулі System.Infoя бачу такі функції: os :: String arch :: String compilerName :: String compilerVersion :: Version Чому його там немає IO? Вони звертаються до системи ... Я помиляюся? Моє сподівання було щось на кшталт: os :: IO String arch :: IO String compilerName :: IO String compilerVersion :: …
25 haskell 

2
Чи є в сучасних версіях GHC якісь стирання?
Припустимо, у мене є параметр, який існує лише на користь системи типів, наприклад, як у цій невеликій програмі: {-# LANGUAGE GADTs #-} module Main where import Data.Proxy import Data.List data MyPoly where MyConstr :: Proxy a -> a -> (Proxy a -> a -> Int -> Int) -> MyPoly listOfPolys …

2
Потреба в чистому в додатках
Я вивчаю додатки Haskell Мені здається (я, мабуть, помиляюся), що pureфункція насправді не потрібна, наприклад: pure (+) <*> [1,2,3] <*> [3,4,5] можна записати як (+) <$> [1,2,3] <*> [3,4,5] Чи може хтось пояснити перевагу, яку pureфункція забезпечує над явним відображенням fmap?

2
Яке припущення, зроблене в "Learn You a Haskell" при виведенні виду?
Це питання не є суб'єктивним. Дуже специфічне дієслово використовується в посилальній книзі, і я хотів би зрозуміти, що означає це словосполучення, бо я боюся, що я щось нерозумію. У розділі Learn You a Haskell наступний параграф - третій і останній, який містить "ми припускаємо *". data Barry t k p …
18 haskell 


2
Haskell: Typeclass проти передачі функції
Мені здається, що ви завжди можете передавати аргументи функцій, а не використовувати клас. Наприклад, замість визначення класу рівності: class Eq a where (==) :: a -> a -> Bool І використовувати його в інших функціях для вказівки аргументу типу повинно бути екземпляром Eq: elem :: (Eq a) => a -> …

2
Чи є різниця між підписами типів a -> b -> a і c -> a -> c?
Це питання є теоретичним питанням щодо функцій Haskell, яке може приймати аргументи будь-якого типу. Чи є різниця між способом функціонування з підписами типів a -> b -> a і c -> a -> c є примірниками? Будь-яка допомога вдячна.

1
Окрім as-pattern, що ще може означати @ у Haskell?
Зараз я вивчаю Haskell і намагаюся зрозуміти проект, який використовує Haskell для реалізації криптографічних алгоритмів. Прочитавши « Learn You Haskell for Great Good» в Інтернеті, я починаю розуміти код у цьому проекті. Потім я виявив, що я застряг у наступному коді із символом "@": -- | Generate an @n@-dimensional secret …

1
Чи повинен аналізатор Haskell допускати цифри Unicode в числових літералах?
Як вправу я пишу парсер для Haskell з нуля. Створюючи лексеру, я помітив наступні правила у звіті Haskell 2010 : цифра → ascDigit | uniDigit ascDigit → 0| 1| … | 9 uniDigit → будь-який десятковий октіт Unicode → 0| 1| … | 7 hexit → цифра | A| …

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