1
голосов
4ответов
780 просмотров

Рекурсивный расчет продукта только с использованием сложения

Я не знаю, почему следующий исходный код haskell для рекурсивного расчета продуктов только с использованием сложения не работает. mult a b = a + mult a (b-1) У меня всегда возникает ошибка переполнения стека.

1
голосов
3ответов
227 просмотров

Определение того, содержится ли элемент в k-арном дереве

У меня есть тип данных data KTree a = Empty | Leaf a | Node a [KTree a] deriving (Eq, Show) Я хотел бы написать функцию, которая возвращает истину или ложь относительно того, содержится ли элемент в моем дереве. ktreeContains :: Eq a => a -> (KTree a) -> Bool ktreeContains _ E...

12
голосов
6ответов
2855 просмотров

Равенство указателей в Haskell?

Есть ли в Haskell понятие качества указателя?== требует, чтобы вещи выводили уравнение, и у меня есть что-то, что содержит (Value -> IO Value), и ни ->, ни IO не выводят уравнение. РЕДАКТИРОВАТЬ: я создаю интерпретатор для другого языка, который имеет равенство указателей, поэтому я п...

4
голосов
1ответов
1065 просмотров

Типы данных сопоставления с образцом в Haskell.Сокращения?

Как это можно записать более кратко в следующем коде Haskell?Нужно ли перечислять все четыре условия, или их можно резюмировать более компактной схемой?Например, есть ли способ воспользоваться преимуществами Haskell, уже зная, как добавить float и int, без необходимости вручную указывать fromIn...

10
голосов
2ответов
669 просмотров

Можно ли использовать в `flip` унарную функцию вместо двоичной?

Тип функции Prelude flip: flip :: (a -> b -> c) -> b -> a -> c То есть, требуется одна двоичная функция и два аргумента. Тип функции Prelude id: id :: a -> a Но тип flip id: flip id :: a -> (a -> b) -> b Как можно применить flip к id, если id - ...

3
голосов
3ответов
586 просмотров

проблема группировки haskell

group :: Ord a => [(a, [b])] -> [(a, [b])] Я хочу найти все пары, у которых одинаковый fst, и объединить их, добавив весь список bs вместе, где у них одинаковый a, и отбросив несобственную пару и так далее ... Я дошел до: group ((s, ls):(s', ls'):ps) = if s == s' then g...

1
голосов
2ответов
1082 просмотров

Ближайший эквивалент subprocess.communicate в Haskell

Я хочу сделать popen () / python subprocess.communicate из Haskell - запустить программу, дать ей stdin и получить ее stdout / stderr.Какой самый простой / хаскелский способ сделать это?

6
голосов
8ответов
3025 просмотров

haskell, объединение фильтров

для записи «map f (map g xs)» как одного вызова map, который вы могли бы написать пример xs = map (f.g) xs но как бы вы написали "filter p (filter q xs)" как единственный вызов filter?оператор точки, похоже, не работает для фильтра, как для карт.предполагаете, что вы бы использовали чт...

1
голосов
1ответов
2239 просмотров

Замена символов на числа в Haskell

Я начал задавать вопросы по Project Euler относительно списков имен, которые необходимо заменить соответствующими позициями в алфавите.В проблеме 22 мне нужно заменить буквы на цифры: names = ["MARY","PATRICIA","LINDA".... replace = ?????? char2num a = map replace a score (a,b) = a * (sum $...

46
голосов
5ответов
10686 просмотров

Cabal не устанавливает зависимости, когда нужны библиотеки профилирования?

Я хочу скомпилировать свою программу с профилированием, поэтому запускаю: $ cabal configure --enable-executable-profiling ... $ cabal build ... Could not find module 'Graphics.UI.GLUT': Perhaps you havent installed the profiling libraries for package 'GLUT-2.2.2.0'? ... $ # indeed I...

2
голосов
2ответов
1224 просмотров

Как разбить файл на модули в Haskell?

У меня проблема с синтаксисом модулей.В основном я пытаюсь разбить свой код на два отдельных файла: один для создаваемого объекта (AST), а второй - для всех моих функций. --main.hs data AST = Add (AST) (AST)| Sub (AST) (AST)| Mult (AST) (AST)| ...

36
голосов
2ответов
6141 просмотров

Есть ли способ увидеть список функций в модуле в GHCI?

Я считаю, что в Python или Common Lisp удобно, что вы можете выводить список содержимого библиотеки во время выполнения.Есть ли в Haskell то же самое, в частности, из приглашения GHCI?

17
голосов
5ответов
7589 просмотров

Различия между Hugs, Yhc и GHCi

Есть ли различия между Hugs, Yhc и GHCi?Если есть отличия, то какие?

1
голосов
2ответов
1491 просмотров

Замена элемента в n-арном дереве

Я новичок в Haskell и до сих пор не могу разобраться в функциональном программировании.С учетом сказанного: У меня есть собственный тип данных n-арного дерева data Tree = Empty | Leaf String | Node String [Tree] Я пытаюсь написать функцию для замены элемента в дереве, т.е. replaceIn...

50
голосов
4ответов
25144 просмотров

Что делает оператор: infix в Haskell?

Я читаю Мягкое введение в Haskell (не такое уж мягкое)и он неоднократно использует оператор : без прямого объяснения того, что он делает. Итак, что именно он делает?

1
голосов
3ответов
898 просмотров

Функция карты для пользовательского n-арного дерева

Я пытаюсь получить такую функцию сопоставления, как this , работающую нан-арное дерево, но я борюсь. data NTree a = Leaf a | Node a [NTree a] ntreeMap :: (a -> b) -> NTree a -> NTree b ntreeMap f (Leaf x) = Leaf (f x) ntreeMap f (Node y t) = Node (ntreeMap f y) (ntreeMap f t) д...

1
голосов
3ответов
1766 просмотров

Вопрос Haskell Noob: что не так с моей функцией добавления?

Я пытаюсь написать функцию добавления Haskell ... Вот что у меня есть: myappend :: [a] -> [a] -> [a] myappend [] x = x myappend [x:xs] y = x : myappend xs y Но это выдает ошибку: Происходит проверка: невозможно построить бесконечный тип: a = [a] При обобщении типа (ов) для `...

5
голосов
1ответов
771 просмотров

Встраиваемый ли Haskell?

Я хочу знать, можно ли разрабатывать приложения на Haskell или на нем для Windows Mobile, а также есть ли какая-либо версия hugs или ghci для Windows Mobile.Спасибо.

17
голосов
6ответов
12856 просмотров

Каковы плюсы и минусы Haskell?

Я выучил несколько языков, но теперь хочу выбрать один.Больше всего мне понравился Haskell, который похож на интерпретируемый язык, но является компилируемым. Каковы плюсы и минусы Haskell?

3
голосов
2ответов
19830 просмотров

Ошибка компилятора Haskell: не входит в область видимости

Я пытаюсь изучить haskell, написав простую утилиту для копирования файлов: main = do putStr "Source: " srcPath <- getLine putStr "Destination: " destPath <- getLine putStrLn ("Copying from " ++ srcPath ++ " to " ++ destPath ++ "...") ...

2
голосов
1ответов
1647 просмотров

Создание списка списков Int с помощью QuickCheck

Я работаю через Реальный мир Haskell один из упражнения главы 4 предназначены для реализации версии на основе foldr concat. Я подумал, что это будет отличным кандидатом для тестирования с QuickCheck, поскольку существует реализация для проверки моих полученные результаты. Однако это требует от...

29
голосов
5ответов
2881 просмотров

Перевернутый / перевернутый fmap ()?

Я нашел определение следующего (%) = flip fmap Я могу написать такой код: readFile "/etc/passwd" % lines % filter (not . null) Для меня это имеет больше смысла, чем альтернатива: filter (not . null) <$> lines <$> readFile "/etc/passwd" Очевидно, это всего лишь в...

23
голосов
4ответов
5732 просмотров

Наследование для расширения структуры данных в Haskell

Программист на C ++ пытается изучить здесь Haskell.Прошу прощения за этот, вероятно, простой вопрос.Я хочу перевести программу, которая представляет трехмерные формы.В C ++ у меня есть что-то вроде: class Shape { public: std::string name; Vector3d position; }; class Sphere : public Shape...

6
голосов
3ответов
794 просмотров

Ошибка компиляции Haskell Parsec

Я установил Haskell через предустановленный установщик v6.8.2. При попытке скомпилировать этот образец файла с помощью GHC module Main where import Text.ParserCombinators.Parsec import System.Environment main :: IO () main = do args <- getArgs putStrLn ("Hello") Я получаю...

37
голосов
4ответов
29456 просмотров

Функция Haskell типа: IO String-> String

Я написал кучу кода на Haskell для создания индекса текста.Верхняя функция выглядит так: index :: String -> [(String, [Integer])] index a = [...] Теперь я хочу дать этой функции строку, прочитанную из файла: index readFile "input.txt" Это не сработает, потому что readFile имеет ...

8
голосов
9ответов
1277 просмотров

Значительные пробелы в C #, например в Python или Haskell?

Мне интересно, сочтут ли другие разработчики C # улучшением наличие директивы компилятора для csc.exe , чтобы сделать пробелы значимыми, как в Haskell или Python, где пробелы создают блоки кода. Хотя это, безусловно, будет серьезным отходом от языков C-стиля , мне кажется, что, поскольку C ...

4
голосов
3ответов
4199 просмотров

Как использовать fromInteger в Haskell?

Один из способов вычислить 2 ^ 8 в haskell - написать product(replicate 8 2) При попытке создать для этого функцию, определяемую следующим образом ... power1 :: Integer → Integer → Integer power1 n k | k < 0 = error errorText power1 n 0 = 1 power1 n k = product(replicate k n) я...

1
голосов
1ответов
1303 просмотров

Как в Haskell рекурсивно манипулировать кортежем и добавлять символ к первому элементу кортежа?

Тип этой функции - function :: Num a => ([Char],a) -> ([Char],a) Введенные мной данные для этой функции будут примерно такими, как (".'*",0), и функция находит первые '.' или '*' и обновляет a, добавляя 200 или 400 к значению a в зависимости от того, какой символ был заменен первым. Пос...

8
голосов
4ответов
706 просмотров

Тестирование ввода-вывода Haskell

Я пытался выяснить, существует ли уже принятый метод для тестирования операций файлового io в Haskell, но мне еще предстоит найти какую-либо информацию, полезную для того, что я пытаюсь сделать. Я пишу небольшую библиотеку, которая выполняет различные операции с файловой системой (рекурсивно ...

0
голосов
2ответов
814 просмотров

как писать числа в лямбде с помощью ghci

Я новичок в Haskell, использую Ghci. У меня есть функция под названием three, которую я хочу написать как let three = \x->(\y->(x(x(x y)))) Хорошо, это работает, но когда я попробую three (2+) 4 Не работает. Вместо этого я получаю сообщение об ошибке «Невозможно построит...