- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码
u & currentDay %~ fmap (addDays 1)
currentDay
返回 Maybe
这就是为什么我需要 fmap
.是否已经有一个运算符来组合 %~
和 fmap
(如 %~<$>
;-))或这样做的聪明方法?
最佳答案
没有现成的运算符,但您可以轻松定义自己的运算符:
%$~ :: Functor f => ASetter s t (f a) (f b) -> (a -> b) -> s -> t
l %$~ f = over a (fmap f)
执行此操作的标准方法是使用 mapped
setter :
u & currentDay . mapped %~ addDays 1
因为你映射到 Maybe
你也可以使用 _Just
棱镜:
u & currentDay . _Just %~ addDays 1
关于haskell - 有镜头操作符结合 %~ 和 fmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31002591/
下面是我正在测试的示例代码 import Control.Exception safeLoad :: FilePath -> IO (Either IOException String) safeLo
下面是我正在测试的示例代码 import Control.Exception safeLoad :: FilePath -> IO (Either IOException String) safeLo
我正在使用 GHCi(版本 6.12.3)和 Haskell 一起玩。我最近阅读了有关仿函数和应用仿函数的文章,我想如果你不能找到类似于 的东西的话。应用仿函数的数量只能使用仿函数的原语来实现。经过
我浏览了一篇文章( http://comonad.com/reader/2012/abstracting-with-applicatives/ )并在那里找到了以下代码片段: newtype Comp
fmap.fmap允许我们“深入两层”进入仿函数: fmap.fmap :: (a -> b) -> f (g a) -> f (g b) 这也适用于应用仿函数吗?假设我想合并 Just (+5)和
我发现自己越来越频繁地做这样的事情...... 我有一个函数 f::IO [a] 然后我想对其应用一个 g::a -> b 类型的函数,以获得 IO [b]。 还有很长的路要走: x x 现在我更愿
我正在阅读《Programming in Haskell》第二版,我看到了这句话: ... there is only one way to make any given parameterised
模式解析错误:f。克 我是初学者,哪里错了? (f . g) x = f (g x) class Functor f where fmap :: (a -> b) -> f a ->
我正在阅读精彩的文章 Haskell Programming from first principles,这是我一生中最开心的时光。我得到了以下我无法拆开的示例(第 1286 页电子阅读器): Pre
我不明白这个简单的表达式类型在 Haskell 中如何检查 (fmap.fmap) sum Just [1, 2, 3] fmap 的组合类型为: fmap.fmap :: (Functor f1
在 ghci 我可以这样做: ghci> (fmap . const) 5 [1,2,3,4,5] [5,5,5,5,5] 但如果我尝试提取子表达式 (fmap . const)进入一个变量我得到一个
我希望拥有无穷无尽的随机或不确定的数字。我继续这样编程: supply :: Monad m => (Int -> m Int) -> m [Int] supply action = sequence
我知道括号会强制执行不同的操作顺序,但我不太明白第一个结果: >> (fmap length Just) [1, 2, 3] 1 而以下内容非常有意义 - 我们将长度函数提升到 Just 结构上,因此
如果我组成两个 fmap Prelude> :t (fmap.fmap) (fmap.fmap) :: (Functor f, Functor f1) => (a -> b) -> f1 (f a
所以假设我想定义一个包含函数的新类型: newtype Test m a = Test(m -> (a, m)) 这可以用来容纳某种状态。 现在假设我想为这个新类型实现 fmap。 instance
考虑以下包装器: newtype F a = Wrap { unwrap :: Int } 我想反驳(作为一个练习,让我的头脑围绕 this interesting post )有一个合法的 Func
给定以下类型族(应该反射(reflect)同构 A×1 ≅ A) type family P (x :: *) (a :: *) :: * where P x () = x P x a =
Haskell的Prelude中是否存在这样的事情? wfmap :: Functor f => a -> (a -> b) -> (b -> a) -
我想更改所有文字。 data Expressions a = ListExpression String[Expressions a] | BinaryExpression String (Expre
我正在尝试理解一些 Haskell 代码。 这是有道理的。 Prelude> fmap (+1) (Just 1) Just 2 这也是有道理的。 Prelude> (fmap.fmap) (+1)
我是一名优秀的程序员,十分优秀!