-1
голосов
0ответы
8 просмотров

Как я могу завершить реализацию парсера для этого мини-пролога в haskell?

модуль Parser, где import Text.Parsec import Lexer import AST type Parser = Parsec [(SourcePos, Token)] () tokenP :: (Token -> Maybe a) -> Parser a tokenP test = token show fst (test. snd). ..
0
голосов
0ответы
14 просмотров

Алгебраические типы данных в Haskell

Здравствуйте, я пока работал только с императивным программированием и изучаю Haskell :) У меня есть следующие алгебраические типы данных: data Day = I | ... | XXXI, производное (Ord, Eq) (Days in roman ...
-1
голосов
1отвечать
29 просмотров

Двойная вертикальная полоса в сопоставлении с шаблоном haskell?

Почему в следующем фрагменте кода должны быть две вертикальные полосы || ? дерево данных = Leaf Int | Node Tree Int Дерево происходит :: Int -> Tree -> Bool встречается m (Leaf n) = m == n ...
1
голосование
2ответы
38 просмотров

Перегрузка функций с сопоставлением с образцом?

Привет, поклонники Haskell! Все мои вопросы касаются - ПЕРЕГРУЖЕННОЙ (?) ФУНКЦИИ - остальное я включил для полноты картины. Мне было интересно, есть ли смысл использовать сопоставление с шаблоном для ...
0
голосов
0ответы
16 просмотров

Реализовать интерпретатор эффектов более высокого порядка

Я пытаюсь реализовать интерпретатор эффекта более высокого порядка. У меня есть базовый эффект: {- # LANGUAGE TemplateHaskell # -} {- # OPTIONS_GHC -fplugin = Polysemy.Plugin # -} модуль Hetchr.Commons.Cat где ...
-1
голосов
0ответы
21 просмотр

Помощь детям в листьях розового дерева хаскелл

У меня есть следующий тип данных haskell Rose :: Branch [Rose]. Я пытаюсь создать функцию addLeaves :: Rose -> Rose, которая просто добавляет еще одного дочернего элемента в каждый лист. Например, если я получу ...
-2
голосов
0ответы
34 просмотра

Создайте функцию сложения, используя чистое лямбда-исчисление в Haskell

У меня есть программа, которая показывает целочисленный ввод как n последователей нуля, например, входной peano (церковь 3) возвращает SSS0. Код показан ниже: import Text.Show.Functions s = \ x -> \ y -> \ ...
0
голосов
1отвечать
Просмотров: 32

Типы, перечисления и конструкторы

Здравствуйте, у меня есть следующие типы: type AlphaOne = Int тип AlphaTwo = String тип CharlieOne = Int тип CharlieTwo = String тип CharlieThree = Bool data Sign = Alpha (AlphaOne, ...
2
голосов
2ответы
36 просмотров

Вывод типа Haskell с помощью char

Я не понимаю, почему, когда я смотрю на тип, например: a = (1, 2), я получаю вместо этого a :: (Num a, Num b) => (a, b), если я смотрю на тип of: b = ('a', 'b') Я получаю b :: (Char, Char), а не ...
3
голосов
1отвечать
50 просмотров

Заставляем QualifiedDo и ApplicativeDo работать вместе при вложении аппликативных функторов

Я хочу определить глубоко вложенные композиции аппликативных функторов. Например, что-то вроде этого: {- # LANGUAGE TypeOperators # -} import Control.Monad.Trans.Cont import Control.Arrow (Kleisli (..)) ...
-3
голосов
0ответы
33 просмотра

Как добавить определенное количество пробелов в начало строки?

тип Word = String тип Line = [Word] lineLength :: Int lineLength = 30 joinLine :: Line -> String joinLine [] = [] joinLine (w: ws) = w ++ "" ++ (joinLine ws) Я хочу изменить ...
1
голосование
0ответы
48 просмотров

Делаем простую форму типобезопасной

Контекст У меня есть простое приложение IHP, которое преобразует фаренгейты в градусы Цельсия. Я удалил многие файлы, поэтому основная часть приложения находится в следующем файле: https: //github.com/dharmatech / ...
2
голосов
1отвечать
87 просмотров

использование лямбда-выражений в качестве операторов для "foldr"

Итак, я слежу за курсом по Haskell и наткнулся на определение функции длины с помощью функции foldr, поэтому, поскольку длина не является примитивной рекурсивной функцией, мы должны быть более конкретными с ...
0
голосов
1отвечать
53 просмотра

N-мерный массив с Haskell

В Python мы можем создать индекс a numpy.ndarray с кортежами, например cube = numpy.zeros ((3,3,3,)) print (cube [(0,1,2,)]). Однако в Haskell индексировать многослойный массив можно только с помощью ...
1
голосование
1отвечать
53 просмотра

Как подсчитать появление списка с помощью Data.Map?

Есть ли способ использовать Data.Map в Haskell, чтобы найти количество вхождений в данном списке, будь то символ или целое число? Например: [Int] -> Map Int Int. Если бы можно было добиться, было бы ...