Описание тега lifting
None Преобразование функции в соответствующую функцию в более общем контексте.
1
ответ
Scala: что представляет собой _ в этом случае
Я читаю учебник для демонстрации метода подъема в Scala. Вот код для базового класса: case object None extends Optional[Nothing] case class Presenter[+A](get: A) extends Optional[A] trait Optional[+A] { def map[B](f: A => B): Optional[B] = this m…
27 фев '17 в 06:44
1
ответ
Поднимите, чтобы зафиксировать * внутреннюю часть * монадного стека трансформаторов.
Предположим, у меня есть IO Int завернутый в StateT MyStateтогда у меня есть значение State MyState Int который я хочу использовать в сложенной монаде. Как мне поднять это в этом внутреннем смысле? Я уже знаю использовать lift или же liftIO если я п…
29 ноя '14 в 07:51
1
ответ
Типовые ограничения для полиморфных функций, таких как lift
Итак, у меня есть этот код {-# LANGUAGE GeneralizedNewtypeDeriving #-} import MonadA data A = A newtype MonadA a => MyStateT a b { runMyStateT :: StateT A a b } deriving (Functor, Applicative, Monad, MonadIO, MonadState A) instance MonadTrans MyS…
15 сен '15 в 09:38
1
ответ
Использование суперкласса монады в объявлении экземпляра монады?
Я реализую очень простую структуру параллелизма бедного человека со следующим типом данных: data C m a = Atomic (m (C m a)) | Done a Я создаю экземпляр монады для этого: instance Monad m => Monad (C m) where (>>=) (Atomic m) f = Atomic $ (l…
16 мар '17 в 09:30
1
ответ
Поднятие функции высшего порядка в Хаскеле
Я пытаюсь построить функцию типа: liftSumthing :: ((a -> m b) -> m b) -> (a -> t m b) -> t m b где t это монадный трансформатор. В частности, я заинтересован в этом: liftSumthingIO :: MonadIO m => ((a -> IO b) -> IO b) -> …
11 фев '12 в 19:11
1
ответ
Преобразование (a -> IO b) в IO (a -> b)
У меня есть несколько типов данных в контексте ввода-вывода, таких как: a :: IO String b :: IO FilePath c :: String -> IO String Я хочу собрать их все вместе в один объект данных, например: data Configdata = Configdata String FilePath (String -&g…
18 авг '16 в 12:11
2
ответа
Почему я могу передать функции в поднятый R.divide?
Учитывая следующее: var average = R.lift(R.divide)(R.sum, R.length) Почему это работает как бессмысленная реализация average? Я не понимаю, почему я могу пройти R.sum а также R.length когда они являются функциями и, следовательно, я не могу отобрази…
17 сен '16 в 10:47
0
ответов
Реагировать использовать hoc с синтаксисом es2015
У меня вопрос: можно ли использовать декораторы для старой версии: 15.0.2 реагирует? когда React.createClass({}) синтаксис используется и ES2015 не нашел примеров, был бы признателен, если бы вы могли помочь найти примеры Хочу поднять состояние до д…
21 фев '19 в 08:33
1
ответ
Следует ли "Лифтинг" в функциональном программировании строгим правилам?
Я рассмотрел "подъемные" вопросы и ответы, примеры которых мне показались, что функция подъема подобна любой функции преобразования, которая изменяет форму (например, преобразование монады). Я пропускаю какую-либо точку или функцию подъема ("концепц…
10 июл '17 в 21:20
2
ответа
Scala лифт из списка [A] в список [вариант [A]]
В Scala, как я могу создать функцию общего назначения для выполнения следующей операции: f: List[A] ==> List[Option[A]]
06 янв '17 в 16:09
1
ответ
scala квазиквоты строковая переменная поднимается в несколько шагов
Это то, что я хочу: scala> var x:Int = 10 x: Int = 10 scala> var y:Int = 20 y: Int = 20 scala> val ret = q"return $x>$y" ret: universe.Return = return 10.$greater(20) scala> val result1 = toolbox.compile(ret)() result1: Any = false Но…
13 сен '17 в 15:09
2
ответа
Когда именно требуется подъем в монадных трансформаторах?
Я изучаю монадные трансформаторы, и я запутался, когда необходимо использовать лифт. Предположим, у меня есть следующий код (он не делает ничего интересного, просто самое простое, что я мог бы использовать для демонстрации). foo :: Int -> State I…
21 июл '17 в 11:13
1
ответ
Pipes.Safe - как использовать mapM
У меня есть следующий код с трубы, которая в порядке без второй трубы (>-> P.mapM ( fillMD5)). fillMD5 это операция a -> IO a, runSafeT $ runEffect $ every (senseRecursive5 startfpo) >-> P.mapM ( fillMD5) >-> P.map fp2rdf >-&…
26 май '14 в 19:26
3
ответа
Поднятие состояния в React
Скажи, что у меня есть этот класс реагирования. Это НЕ мой основной компонент, который я рендеринг. как я могу передать состояние, которое я установил здесь, вверх в родительский компонент. class Player extends React.Component { constructor(props) {…
29 сен '17 в 08:24
1
ответ
Лифтинг - обобщение
Мне нужно использовать тяжелую функцию подъема, например. k = myFunc <$> someFunctionName 1 <*> someFunctionName 2 <*> someFunctionName 3 <*> someFunctionName 4 <*> someFunctionName 5 <*> someFunctionName 6 <*&…
03 апр '18 в 11:18
1
ответ
Трюки классов типов для поднятия обобщенных многопараметрических функций
Я хочу поднять функцию Haskell в кодировке лямбда-исчисления более высокого порядка. Это почти дословно взято из кодировки Олега Typed Tagless Final. class Lam r where emb :: a -> r a (^) :: r (r a -> r a) -> (r a -> r a) lam :: (r a -&g…
21 ноя '13 в 18:01
1
ответ
Выполнить монадический код из вновь созданной монады
В настоящее время у меня есть две монады, которые имеют одинаковые типы, реализованные аналогично State монада: newtype FooRead a = FooRead { runFooRead :: Context -> (a,Context) } newtype FooWrite a = FooWrite { runFooWrite :: Context -> (a,C…
03 ноя '13 в 14:42
1
ответ
Что это значит, что "лифт почти такой же, как карта"?
Леонардо Борхес написал отличную статью под названием "Функциональная композиция с монадами, Клейслисом и функторами". В нем он комментирует: Марк указал мне, что лифт почти такой же, как карта, но с перевернутыми аргументами. Это означает, что это:…
23 июн '14 в 03:24
1
ответ
Как разбить цепочку выражений членского доступа?
Краткая версия (TL;DR): Предположим, у меня есть выражение, представляющее собой цепочку операторов доступа к элементам: Expression<Func<Tx, Tbaz>> e = x => x.foo.bar.baz; Вы можете думать об этом выражении как о составе подвыражений,…
19 июн '12 в 19:45
3
ответа
Какие шаги для выведения этого бессмысленного кода?
Я просматривал некоторый код и наткнулся на следующий драгоценный камень, на который я бы поставил pointfree выход: (Я думал, что следующее будет более подходящим, чем обычно foo/bar для этого конкретного вопроса:P) import Control.Monad (liftM2) dat…
19 ноя '14 в 23:25