问题标签 [lifting]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
function - F#:将选项的值附加到列表选项
我有一个基本append
功能
我有一个'列表选项和选项Some("something")
我想将值添加"something"
到listOption
. 我怎么能不使用模式匹配Option.get
而是通过提升append
功能来做到这一点?
任何帮助,将不胜感激
javascript - 如何为单子实现通用提升功能?
我有一堆 arity 感知提升功能:
是否可以实现相应的通用提升功能?
我想这是一个递归算法,但我无法理解它。
haskell - 有没有办法“提升”构造函数?
假设我有一个函数(plusOne
在下面的示例中),它只接受并返回一个Int
. 但我没有Int
; 相反,我有一个Maybe Int
; 如果这Maybe Int
包含一个值,那么我想将它传递给plusOne
并获得一个返回值,Just
或者plusOne
如果它是一个值,Nothing
那么我希望它Nothing
传播。
在这种情况下,我们必须liftM
以一种优雅的方式编写代码:
到现在为止还挺好。但是,这样的事情也可以用构造函数来完成吗?
忘了plusOne
。现在我有:data SomeData = SomeData Int
并且想Maybe (SomeData Int)
从我的Maybe Int
. 该解决方案似乎明显不那么优雅:
上述两种解决方案(with>>=
或 with liftM
)都需要通过一个匿名 lambda 函数,根据我的直觉,这不是必需的,只会破坏代码。有没有办法避免它?我可以以某种方式“提升”someData
构造函数,就像我可以plusOne
在第一个片段中提升一样吗?
scala - 提升类型上的模式匹配(Slick Lifted Embedding)
如果我想对 Scala 中的基本选项类型进行模式匹配,我会按照以下方式运行
但是假设 opt 是 Slick 的一个查询的结果,因此具有提升嵌入类型,Rep[Option[Int]]
我如何以一种允许我们看到提升类型内部的方式执行相同的模式匹配?即类似的东西
但是,当然,可以编译的;)
javascript - reactjs中的提升功能
任何人都可以向我解释上述内容是做什么的吗?为什么有 2 个箭头功能?
这是整个代码
haskell - liftM 函数是否被剥夺了它们的一元本质?
monad 和 applicative 的区别在于前者可以根据之前的结果选择下一个计算:
monadic 计算可以使计算短路,而对于 applicative 计算,我们必须使用整个计算结构并运行所有效果,无论我们提供什么输入。
让我们将其与以下内容进行比较liftM
:
这似乎是变相的应用风格。即使我用一元涂抹器替换升降机操作符,整个结构似乎也失去了它的一元属性:
这是否意味着必须始终手动编码适当的一元计算?我知道 do 表示法,但底层机制似乎类似于宏扩展(如果这是废话,请纠正我),所以它并不能真正反驳我的假设。
reactjs - 反应:无法将参数传递给提升事件处理程序
我无法使用相同的事件处理程序将参数从子组件传递到父组件。
我的组件树遵循以下结构:
- 产品列表
- 产品网格
- 分页栏
在 ProductList 组件中,我有这个事件处理程序
当我呈现页面时,在分页栏中。
在 onClick 事件中,我使用索引号(这是我要传递的参数)调用事件处理程序,根据单击的按钮,我正确呈现 ProductsGrid。但它根本不起作用,我尝试了几种方法,我只想通过参数传递一个数字以用于提升事件处理程序。我究竟做错了什么?
这是控制台中出现的错误。
react_devtools_backend.js:6 警告:在现有状态转换期间无法更新(例如 within render
)。渲染方法应该是 props 和 state 的纯函数。在 Pagination(由 Catalog 创建) in Catalog(由 App 创建) in main(由 App 创建) in App
在渲染过程中我没有更改任何状态,事件处理程序会在单击按钮时更改状态。这不是渲染过程。
scala - 何时以及为什么要提升功能
考虑这段代码:
我听说你可以“提升”f1 像 f2 一样。作为初学者,我有以下问题:
什么是起重以及为什么使用它?在实现方面,如何“提升”f1?
非常感谢任何解释,因为找到我为什么要“举起”某些东西有点棘手
functional-programming - 将 Lift 与 Either 或 Maybe monad 一起使用
当我读到提升的概念时,它是这样实现的(在 Javascript 中)
我意识到有一种情况liftA2
会产生错误:when b
is a Right
/ Just
and a
is a Left
/ ,因为当我们需要它成为部分应用的函数时Nothing
,映射Left
/不会对值做任何事情。Nothing
Whena
和b
are both aLeft
它不会爆炸,但当然返回Left
的值将是我认为可能是一个问题的值,b
具体取决于您的期望。
提升与这些类型一起使用的功能是否是一回事?在使用这样的功能之前,我是否应该系统地明确地防范这些情况?上述实现是否正确/完整?
您将在下面找到有关该问题的更多详细信息
让我们定义函数来提升在基本
Wrapper
实现of
的情况下ap
,map
我们可以跟踪正在发生的事情但是
Either
or的事情Maybe
是他们有一个Left
/Nothing
casemap
并且打算不做任何特别的ap
事情