- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个功能:
test :: String -> State String String
test x =
get >>= \test ->
let test' = x ++ test in
put test' >>
get >>= \test2 -> put (test2 ++ x) >>
return "test"
runState (test "testy") "testtest"
最佳答案
我原本打算将此作为评论发布,但决定再解释一下。
严格来说,get
不“接受”争论。我认为很多正在发生的事情都被你没有看到的东西所掩盖——State monad 的实例定义。get
实际上是 MonadState 类的一个方法。 State monad 是 MonadState 的一个实例,提供了 get
的以下定义:
get = State $ \s -> (s,s)
get
只返回一个非常基本的 State monad(请记住,monad 可以被认为是计算的“包装器”),其中任何输入
s
进入计算将返回一对
s
作为结果。
>>=
, State 如此定义:
m >>= k = State $ \s -> let
(a, s') = runState m s
in runState (k a) s'
>>=
将产生一个新的计算,在它获得初始状态之前不会被计算(当它们处于“包装”形式时,所有状态计算都是如此)。这个新计算的结果是通过应用
>>=
右侧的任何内容来实现的。运行左侧计算的结果。 (这是一个非常令人困惑的句子,可能需要额外阅读一两次。)
get
的来源)非常清楚。请注意,以下应视为伪代码...
test x =
State $ \s -> let
(a,s') = runState (State (\s -> (s,s))) s --substituting above defn. of 'get'
in runState (rightSide a) s'
where
rightSide test =
let test' = x ++ test in
State $ \s2 -> let
(a2, s2') = runState (State $ \_ -> ((), test')) s2 -- defn. of 'put'
in runState (rightSide2 a2) s2'
rightSide2 _ =
-- etc...
s
) 来完成其余的事情。您提供了
s
如
"testtest"
与您的
runState
称呼。如果你用“testtest”代替
s
在上面的伪代码中,你会看到首先发生的是我们运行
get
以“testtest”作为“初始状态”。这产生
("testtest", "testtest")
等等。
get
获取您的初始状态“testtest”。希望这可以帮助!
关于haskell - 'get' 如何在 Haskell 中实际/get/初始状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1036957/
我很好奇如何从服务器管理初始状态。例如,我们在页面上有一个按钮,只有在用户获得授权后才能启用该按钮。我看到两个选项,但都有缺点: 在 ComponentWillMount() 中,从服务器获取信息。缺
我有一个听另一个集团的集团。更新后flutter_bloc打包至 version 6.0.2 ,监听器在初始状态下不会再调用。 class BlocA extends Bloc { final B
我正在为我的 React 应用程序使用 redux。我正在从 api 获取用户数据,用它更新 redux 状态并将其显示到我的组件中。数据是对象列表。导致我出现问题的是设置 redux 初始状态。 r
我想观察一个由完全独立的代码修改的 ObservableList。我的问题是,我不仅希望在列表更改时调用 ListChangeListener(当我附加监听器时,列表可能已经包含元素),而且我还希望将
正如标题所说,我需要将 TextView、ImageView 和其他 View 重置为初始状态。例如,在触摸该特定 View 后,会播放一个动画,并且它的动画会(视觉上)销毁该 View 。 现在我需
我已经开始开发一个 react native 应用程序,但我的 ListView 的初始化出现问题。 我正在使用react-native-db-models插件来存储和检索我的数据 问题是我想在rea
我正在对时间序列数据使用 lstm。我有关于时间序列的不依赖于时间的特征。想象一下该系列的公司股票以及非时间系列功能中的公司位置之类的东西。这不是用例,但它是相同的想法。对于此示例,我们只预测时间序列
我有一个参与者模型,带有 state_machine last_action。我想根据角色属性设置last_action 的初始值。如果角色为“导师”,则初始值为“值1”,而如果角色为“学生”,则初始
我已经为 LavaLamp 滑动菜单集成了代码,到目前为止效果很好(我遇到了一些问题,但能够通过阅读面板快速解决它们)但是有一件令人沮丧的事情妨碍了我。当您最初加载页面时,菜单悬停背景位于错误的位置,
我想根据从 Home.js 获得的现有 Prop 在 reducer.js 中设置初始状态 我试图调用 home: this.props.homedata 来设置初始状态,但它不起作用。 import
在我的程序中,我有多个网格,但它们非常相似,因此我决定为所有网格制作一个 reducer ,以保持我的代码美观且干燥。当我分派(dispatch)事件以更改存储时,我将网格名称作为参数与有效负载一起发
我是 React 的新手,正在尝试构建一个具有购物车功能的应用程序,用户可以在其中将机器人添加到购物车。我正在使用 Context API 在整个应用程序中提供购物车,并使用 useReducer 为
我是 React 的新手,正在尝试构建一个具有购物车功能的应用程序,用户可以在其中将机器人添加到购物车。我正在使用 Context API 在整个应用程序中提供购物车,并使用 useReducer 为
我有一个功能: test :: String -> State String String test x = get >>= \test -> let test' = x ++ tes
我是 Redux 和 React 的新手,我正在尝试编写一些基本代码。我遇到了一个看起来很愚蠢但无法解决的问题。 这是片段 import React from 'react'; import Reac
我是 JS/React-native 新手,对于如何正确管理 map 初始状态有点困惑。 我有以下组件: import React from 'react'; import { StyleSheet,
嗨,我最近开始使用 Angular 和 Node,但立即遇到了问题。 我有一个简单的 Controller ,用于获取单个对象。一切正常,但我希望能够在 Controller 内初始化范围变量。我不知
我正在使用tf.nn.dynamic_rnn在 tensorflow 中运行 LSTM。我有一个由 N 个初始状态向量组成的张量和一个由 M = N * n 个输入组成的张量。每个系列由n个输入项组成
在 Angular 1.5 应用程序中使用 UIRouter,我在尝试为我的 Angular 模块设置初始状态时遇到问题。 我已经创建了几个没有 URL 的状态(因为我不需要实际路由),我想在模块实例
我是一名优秀的程序员,十分优秀!