Вопросы по теме 'combinators'
foldl против поведения foldr с бесконечными списками
Код функции myAny в этом вопросе использует foldr. Он прекращает обработку бесконечного списка, когда предикат удовлетворяется.
Переписал с помощью foldl:
myAny :: (a -> Bool) -> [a] -> Bool
myAny p list = foldl step False list
where...
19843 просмотров
schedule
12.07.2023
Проектирование монадического типа
Мне понадобится помощь в разработке монадического типа данных, похоже, у меня проблемы с обдумыванием этой идеи, но я совершенно точно знаю, чего хочу. Только проверка типов, кажется, требует некоторого убеждения в этом вопросе.
Мне нужен...
214 просмотров
schedule
23.05.2023
Как использовать groupBy и zip на практике?
import Data.List.Split
import Data.List(nub, groupBy)
z = splitOn "+" "x^2+2*x^3+x^2"
y = map (splitOn "*") z
x = map head y
toInt :: [String] -> [Int]
toInt = map read
u1 = filter ((< 2) . length) y
u2 = filter ((> 1) . length) y
v =...
538 просмотров
schedule
28.06.2023
Какова общая схема записи функции в бесточечном стиле?
Сейчас я работаю над 20 промежуточными упражнениями на Haskell , и это довольно забавное упражнение. Он включает в себя реализацию различных экземпляров классов типов Functor и Monad (и функций, которые принимают Functor и Monad в качестве...
615 просмотров
schedule
10.08.2022
объединение функций/комбинатор в fsharp
У меня есть список функций, принимающих один и тот же тип в качестве ввода, разные типы в качестве вывода
[ f_i : Mytype -> res:Sometype_i ]
Какая операция может объединить их в одну функцию следующего типа?
f : Mytype ->...
334 просмотров
schedule
25.02.2023
Обсуждение Y-комбинатора в The Little Schemer
Итак, я потратил много времени на чтение и перечитывание конца главы 9 книги The Little Schemer , где аппликативный комбинатор Y разработан для функции length . Я думаю, что моя путаница сводится к одному утверждению, которое противопоставляет две...
4502 просмотров
schedule
12.07.2023
Может ли clojure оценить цепочку смешанных функций арности и при необходимости вернуть частичную функцию?
Предположим, у вас есть три функции арности 1, 2 и 3, как показано ниже:
(defn I [x] x)
(defn K [x y] x)
(defn S [x y z] (x z (y z)))
Есть ли в clojure функция оценки или идиома для оценки:
(I K S I I) as (I (K (S (I (I)))))...
1573 просмотров
schedule
02.07.2022
Не удалось заставить работать комбинатор Y
Вот код ( также здесь ):
#lang racket
(define poorY
((lambda length
(lambda (ls)
(cond
[(null? ls) 0]
[else (add1 ((length length) (cdr ls)))])))
(lambda length
(lambda (ls)
(cond
[(null? ls) 0]...
471 просмотров
schedule
03.09.2022
Реализация комбинаторного исчисления
Концепция
Я реализую интерпретатор, который позволяет пользователю определять произвольные комбинаторы и применять их к произвольным терминам. Например, пользователь может определить церковную кодировку для пар , введя следующие определения...
521 просмотров
schedule
03.09.2022
Воспроизвести JSON: чтение необязательных вложенных свойств
У меня есть следующие классы case и комбинаторы JSON:
case class Commit(
sha: String,
username: String,
message: String
)
object Commit {
implicit val format = Json.format[Commit]
}
case class Build(
projectName: String,...
2645 просмотров
schedule
21.11.2022
Расщепить вычисляемое значение во время выполнения?
Cleave — действительно полезный комбинатор для минимизации дублирования кода. Предположим, я хочу классифицировать обильные, совершенные, недостаточные числа :
USING: arrays assocs combinators formatting io kernel math
math.order...
35 просмотров
schedule
02.03.2023
Как обрабатывать «продолжение строки» с помощью комбинаторов парсера
Я пытаюсь написать небольшой парсер, используя библиотеку комбинаторов парсеров Sprache . Синтаксический анализатор должен иметь возможность анализировать строки, заканчивающиеся одним \ , как незначащие пробелы.
Вопрос
Как мне создать...
292 просмотров
schedule
27.07.2023