Вопросы по теме 'applicative'
Как и почему ap определяется как идентификатор liftM2 в Haskell
Пытаясь лучше понять аппликатив, я посмотрел на определение ‹*>, которое, как правило, определяется как ap, которое, в свою очередь, определяется как:
ap :: (Monad m) => m (a -> b) -> m a -> m b
ap =...
1257 просмотров
schedule
07.03.2022
Есть ли понятные человеку названия для аппликативных (и дружественных) методов?
В последнее время я довольно часто использую аппликативный (и альтернативный), и одна вещь, которая меня расстраивает, - это мое незнание номенклатуры. В качестве примера я хотел бы иметь возможность сказать function name вместо star thing для...
615 просмотров
schedule
22.02.2023
Аппликативный без функтора
У меня есть тип Image , который в основном представляет собой c-массив с плавающей запятой. Легко создавать такие функции, как map :: (Float -> Float) -> Image -> Image или zipWith :: (Float -> Float -> Float) -> Image ->...
718 просмотров
schedule
31.07.2022
Haskell — Чем полезен Control.Applicative.Alternative?
Я искал класс Applicative в библиотеках Haskell и наткнулся на Alternative .
Чем хорош этот класс? Поиск в гугле ничего особенно интересного не дал. И это, кажется, совершенно неуместно в комплекте с пакетом Applicative.
Может ли кто-нибудь...
3584 просмотров
schedule
18.06.2023
Хорошие примеры Not a Functor / Functor / Applicative / Monad?
Объясняя кому-то, что такое класс типа X, я изо всех сил пытаюсь найти хорошие примеры структур данных, которые в точности соответствуют X.
Итак, прошу примеры:
Конструктор типа, не являющийся функтором.
Конструктор типа, который является...
16798 просмотров
schedule
12.07.2022
Монадический эквивалент аппликативного падежа ‹*
Прочитав ответ Энтони на вопрос синтаксического анализатора, связанный со стилем , я пытался убедить себя, что написание монадических синтаксических анализаторов все еще может быть довольно компактным.
Итак, вместо
reference :: Parser...
347 просмотров
schedule
17.09.2023
Может кто-нибудь объяснить, где в этом коде возникают экземпляры Applicative?
isAlphaNum :: Char -> Bool
isAlphaNum = (||) <$> isAlpha <*> isNum
Я вижу, что это работает, но я не понимаю, откуда берутся экземпляры Applicative (или Functor ).
862 просмотров
schedule
10.08.2022
аппликативное переписывание (Haskell)
Когда я не понимаю, как работает выражение в Haskell, мне часто помогает разложить его на более простую форму.
Используя следующие определения
sequenceA :: (Applicative f) => [f a] -> f [a]
sequenceA [] = pure []
sequenceA (x:xs) = (:)...
285 просмотров
schedule
19.05.2023
Как аппликативные функторы связаны с алгоритмами распараллеливания? (Scala и Scalaz)
Из книги Джоша Суэрета «Глубокая Скала»:
«Аппликативные функторы предоставляют способ взять два вычисления и соединить их вместе с помощью функции. Пример Traversable показывает, как две коллекции могут быть распараллелены в пары. Аппликативные...
1744 просмотров
schedule
15.01.2023
Каков пример монады, которая является альтернативой, но не монадой плюс?
В его ответе на вопрос «Различие между классами типов MonadPlus , Alternative и Monoid ?» , — говорит Эдвард Кметт.
Более того, даже если бы Applicative был суперклассом Monad , вам все равно бы понадобился класс MonadPlus , потому...
991 просмотров
schedule
29.03.2022
эквивалентность аппликативного функтора и монады
Люди говорят, что монады - это расширение аппликативных функторов, но я этого не вижу. Возьмем пример аппликативного функтора: (<*>) :: f(a->b) -> f a -> f b
[(+3)] <*> [2,3,4]
Теперь я также ожидаю, что могу делать то...
1217 просмотров
schedule
28.02.2024
Сопоставление как минимум 1 из 3 регулярных выражений Scala с использованием аппликативного функтора
У меня есть три регулярных выражения Scala, которые мне нужно проверить, чтобы увидеть, соответствует ли какое-либо из них заданной строке.
Я знаю, что могу сделать следующее:
val matches = R1.findFirstIn(myString).isDefined ||...
224 просмотров
schedule
27.12.2022
Функторы и аппликативы для типов вида (* -› *) -› *
Я столкнулся с ситуацией, когда мой код выиграл бы от использования абстракций типа Functor и Applicative , но для типов вида (* -> *) -> * . Определение функтора высшего порядка можно выполнить с помощью RankNTypes следующим образом....
803 просмотров
schedule
09.06.2023
Почему я не могу обобщить это с монады на аппликатив?
Я обобщил hoistFree из бесплатный пакет для hoistFreeM аналогично тому, как можно обобщить fmap для Data.Traversable.mapM .
import Control.Monad
import Control.Monad.Free
import Data.Traversable as T
hoistFreeM :: (Traversable g,...
261 просмотров
schedule
26.07.2022
optparse-applicative: отображение справки для программ, запущенных без аргументов
Я использую optparse-applicative версии 0.7.0.2.
Я хочу написать синтаксический анализатор, который принимает некоторые обязательные параметры, но при вызове без параметров показывает и использование , и справку, а не только использование (то...
798 просмотров
schedule
14.04.2023
Как лучше написать [(-1,-1),(-1,0),(-1,1),(0,-1),(0,1),(1,-1), (1,0),(1,1)] в Haskell?
Я столкнулся с несколькими ситуациями, когда мне нужен список:
[(-1,-1),(-1,0),(-1,1),(0,-1),(0,1),(1,-1),(1,0),(1,1)] -- no (0,0)
Обратите внимание, что в списке нет (0,0). Я использую кортежи (dx,dy) для поиска вверх, вниз, влево, вправо и...
1033 просмотров
schedule
22.04.2022
Аппликативный экземпляр для бесплатной монады
Пытаясь найти монаду haskell, которая может выполняться поэтапно / разрешает многопоточность, я обнаружил бесплатную монаду
data Free f a = Return a | Roll (f (Free f a))
со своим экземпляром монады
instance (Functor f) => Monad (Free...
952 просмотров
schedule
02.11.2022
Аппликативный пример для MaybeT m предполагает Monad m
Я использовал монаду Haxl (описанную здесь: http://www.reddit.com/r/haskell/comments/1le4y5/the_haxl_project_at_facebook_slides_from_my_talk ), который имеет интересную особенность, заключающуюся в том, что <*> для его экземпляра...
499 просмотров
schedule
20.01.2023
немонадическая обработка ошибок в Haskell?
Мне было интересно, есть ли элегантный способ немонадической обработки ошибок в Haskell, который синтаксически проще, чем использование простого Maybe или Either . Я хотел иметь дело с исключениями, не связанными с вводом-выводом, такими как...
700 просмотров
schedule
07.04.2024
scalaz с использованием reduceLeft для аппликативного компоновщика
Я немного смущен |@| магия в скалазе. Вот мой код:
def isThree(x: Int): Validation[NonEmptyList[String], Int] = if (x!= 3){("failed: %d" format x).wrapNel.failure} else {x.success}
println((isThree(6) |@| isThree(7) |@| isThree(13) )...
492 просмотров
schedule
18.12.2022