我正在寻找一个在拖动节点时触发的事件。我认为 tapdrag 看起来像我想要的,但是只有当鼠标按钮未按下时,只要鼠标移动到节点上,tapdrag 就会触发(因此节点没有被拖动,基本上是鼠标悬停)。我尝试了其他几个事件,但似乎没有一个能满足我的需要。
如何在拖动节点时触发事件?具体来说,我想在拖动第一个节点时移动另一个节点,我宁愿不使用复合节点。
pure我对其 Applicative 实例未指定的情况下的行为有点困惑。在此示例中,我希望在应用上下文中结果值为数字 5:
Prelude> pure 5 :: Applicative t => t Integer
5
Prelude> :t it
it :: Integer
Run Code Online (Sandbox Code Playgroud)
相反,它只是一个普通的整数。
如果指定了应用实例,如以下示例所示,则返回的值是应用类型,正如我所期望的:
Prelude> pure 5 :: Maybe Integer
Just 5
Prelude> :t it
it :: Maybe Integer
Run Code Online (Sandbox Code Playgroud)
为什么Applicative t第一个例子中的 似乎消失了?
似乎未指定的应用上下文被剥离以用于最终评估以打印到输出,但我想知道这的规则是什么。