gpt4 book ai didi

haskell - 箭头 FRP 中的连续信号切换

转载 作者:行者123 更新时间:2023-12-04 04:34:06 26 4
gpt4 key购买 nike

我一直在使用 Haskell(特别是 Yampa)中的 Arrowized FRP 库,但我不太清楚如何进行“连续”切换。我的意思是信号通过信号函数(下面的 sf),它本身就是一个信号(如图像的上半部分所示)。

Continual switching

由于我事先不知道开关的参数是什么,我看不出如何将其简化为更简单的二进制开关。

如果可能的话,应该怎么做呢?我更喜欢 Yampa 代码,但对任何 Arrowized FRP 代码都很满意。我还没有尝试过其他库(例如钠或 react 性香蕉)来知道在这些情况下我是否会遇到同样的困惑,但我也对它们很好奇。

编辑

为了使这更清晰更具体,我标记了图像;标签的可能类型是:

  • :Either Int (Int -> Int)
  • 1 :(Int -> Int) -> (Either Int (Int -> Int) -> (Int -> Int))
  • 顺丰可以是:
  • (Either Int (Int -> Int) -> (Int -> Int)) -> Either Int (Int -> Int) -> (Int -> Int)
    (例如, app )。但这仅当标有问号的部分表示 sf 的输入时.如果它代表一个更复杂的开关,类型将是
    (Either Int (Int -> Int) -> (Int -> Int)) -> (Int -> Int)
    相反。
  • 2 几乎无关紧要。

  • 这个想法是我希望电路表现得好像 sf分别是 app ,信号标记为 f表示应用于 in 的函数,并与 in本身是 f 的两个参数的来源s 和 f s 自己。我想得到一个可以处理输入并根据这些输入动态改变其行为(构成它的信号函数)的电路。

    一方面,在我看来就像 sf实际上不可能是 app ,因为在这种情况下我们没有 ArrowApply ;但另一方面,我想通过某种形式的复杂切换可以实现相同的行为。

    最佳答案

    我仍然认为这是ArrowLoop的一个案例!

    你有

    in :: Arr () A
    sf :: Arr (A -> B, A) B
    one :: Arr B (A -> B)
    two :: Arr B C
    sf只是 arr (uncurry ($)) .

    那么你有 sf >>> (one &&& two) :: Arr (A -> B, A) (A -> B, C)你可以使用 loop (或者更确切地说 looparr swap 明智地放置)得到一个 Arr A C .

    那会给你你想要的吗?

    关于haskell - 箭头 FRP 中的连续信号切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20049558/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com