Вопросы по теме '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 просмотров

объединение функций/комбинатор в 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 просмотров

Может ли 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 просмотров

Реализация комбинаторного исчисления
Концепция Я реализую интерпретатор, который позволяет пользователю определять произвольные комбинаторы и применять их к произвольным терминам. Например, пользователь может определить церковную кодировку для пар , введя следующие определения...
521 просмотров

Воспроизвести 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