lifting相关内容

对期权的提升函数

有没有办法提升一个简单的函数,就像这样 fn add(a:i32, b:i32) -> i32 {a+b} 对Option(或任何其他一元类型)进行操作,类似于在Haskell中使用Applicative 我知道此解决方案: pub fn add(a: Option, b: Option) -> Option { Some(a? + b?) ..
发布时间:2022-07-18 11:12:53 其他开发

什么是“举"?在斯卡拉?

有时当我阅读 Scala 生态系统中的文章时,我会读到“提升"/“提升"这个词.不幸的是,没有解释这究竟意味着什么.我做了一些研究,似乎提升与功能价值或类似的东西有关,但我无法找到以初学者友好的方式解释提升实际上是什么的文本. Lift 框架存在额外的混淆,该框架的名称有提升,但它没有t 帮助回答问题. Scala 中的“提升"是什么? 解决方案 有几个用法: 偏函数 ..
发布时间:2022-01-02 13:53:56 其他开发

在 Haskell 中提升高阶函数

我正在尝试构造一个类型的函数: liftSumthing :: ((a -> m b) -> m b) ->(a -> t m b) ->时间 其中 t 是一个 monad 转换器.具体来说,我有兴趣这样做: liftSumthingIO :: MonadIO m =>((a -> IO b) -> IO b) ->(a -> m b) ->米 我摆弄了一些 Haskell 巫术库,但无济 ..
发布时间:2021-12-14 11:42:06 其他开发

将类型为`MonadIO`的类的实例提升为转换后的monad

作为程序的一部分,我需要记录单子计算的数据,我试图定义一个类以使其更加方便. 模块序列号,其中导入Data.Int导入Data.IORef导入System.IO导入Control.Monad.Trans导入Foreign.Ptr进口外国元帅导入Foreign.Storableclass MonadIO m =>序列号得到::句柄->嘛放::句柄->a->米() 我想做的一件事是在“较高"的m ..
发布时间:2021-05-13 20:44:38 其他开发

提升功能与高阶功能之间的区别

当人们谈论map,fold或bind时,我通常会听到“提升"一词,但基本上每个高阶函数都不都是某种提升吗? 为什么filter不能成为从a -> Bool到[a] -> [a]的提升,甚至连bool函数(模拟if语句的函数)也可以被认为是从a -> a到Bool -> a的提升.如果不是,那么为什么Applicative类型类中的ap被认为是提升? 如果重要的事情从... a ...变 ..
发布时间:2020-07-24 05:32:40 其他开发

在Haskell中提升State monad的值

我的解决函数需要花费一个数独生成器/求解器在Haskell中进行学习。在 UArray 中,但返回一个 State Int(UArray ...),这样它也可以返回最大难度级别它是在解决问题时找到的。 这是我迄今为止的功能(仍处于非常实验性的早期阶段): import Control.Monad.State(State,put) import Control.Monad.Trans ..
发布时间:2018-06-05 11:25:03 其他开发

压扁monad堆栈

f ::(MonadTrans t)= >除T()(t(StateT AB))C f =做mapExceptT升降机$ do 升降机$ do ... 升降机$ do ... r> = \r - > ... 我如何尝试实现自己的目标肯定会出现问题更简单的方式如何做到这一点),但目前我有兴趣学习如何以 ..
发布时间:2018-06-05 11:15:04 其他开发

整理Monads - 将monad变换器的应用转变为新型monad

我正在尝试如 ExceptT(StateT AM),对于某些具体类型 A 和monad M ,并将它们包装到我的新自定义monads中。 首先我确定出现 StateT AM 通常在其他上下文中,因此我决定最好将它单独包装在单元 M1 中,然后包装 ExceptT a M1 到 M2 。 所需的属性是使 M1 和 M2 MonadState 的实例和 M MyMonadClass )。 ..
发布时间:2018-06-04 15:26:51 其他开发

提起以修复单体变压器堆叠的*内部*

假设我有一个包含在 StateT MyState 中的 IO Int ,那么我的值为 State MyState Int ,我想在堆叠monad中使用它。如何从内在意义上解除它?我已经知道要使用 lift 或 liftIO ,如果我得到与内部兼容的东西,我只需要提升到外部单子,但现在我有相反的问题:价值已经在外部单子,而不是内部单子。 例如: checkSame :: State M ..
发布时间:2018-06-04 15:23:24 其他开发

有没有这种解除功能的名字?

我写了一个Scala函数: pre $ def liftOrIdentity [T](f:(T,T)=> T )=(a:选项[T],b:选项[T])=> (a,b)match { case(Some(a),None)=>一些(a) 的情况(无,一些(b))=>一些(b) 的情况(一些(a),一些(b))=>一些(f(a,b)) 情况(无,无)=>无 } 这种模式是否有名称? ..
发布时间:2018-04-18 16:07:14 其他开发

我的头不能包裹“抬起”在Ramda.js

查看Ramda.js的源代码,特别是在“lift”函数中。 lift liftN 下面是给出的示例: madd3([1,2,3],[1,2,3],[1]); // => [3,4,5,4,5,6,5,6,7] 所以结果的第一个数很容易, a , b 和 c ,都是每个数组的第一个元素。第二个对我来说不是很容易理解。参数是每个数组的第二个值(2,2,未定义)还是第 ..
发布时间:2018-04-18 15:40:33 前端开发

什么是“提升”在斯卡拉?

有时,当我阅读Scala生态系统中的文章时,我读到了“提升”/“提升”的术语。不幸的是,它没有解释到底是什么意思。我做了一些研究,似乎解除与功能值或类似的东西有关,但我无法找到一个文本解释以新手友好的方式实际提升的内容。 电梯框架,它的名字取消了,但并没有帮助回答这个问题。 什么是Scala中的“提升”? 解决方案 有几个用法: $ b PartialFunction ..
发布时间:2018-04-17 10:32:14 其他开发