私は1行のテキストエディタを作成しようとしているプログラムを持っています 私はこの時点で少し壁に来ました。 私はlist
の文字をleft
といい、right
という名前の文字を関数またはリストに入れました。left ++ char
のcharはユーザーが入力したcharです。リストを変更することはできませんが、再定義することはできますか? この擬似コードは、これはState Monadが何のためにあるのかで事前同じ変数に変数を変更しましたか?
0
A
答えて
2
で
left = "hello"
in = get user input
left = left ++ in
感謝を助けている場合。リンクが役立つはずです(チュートリアルを指しています)。あなたの例は次のようになります:
type Line = State String()
addInput :: String -> Line
addInput inp = do
left <- get
put $ left ++ inp
runState (addInput <user input>) "hello"
しかし、これは少しモナドを知る必要があります。リンクの例に従ってください。
+0
これを 'addInput inp = modify(++ inp)'に短縮することができます。 – leftaroundabout
関連する問題
- 1. 同じページのhtml変数をPHP変数に変更する
- 2. 数値変数をカテゴリ変数に変更しますか?
- 3. 同じ変数
- 4. SAS変数を別の変数と同じに設定して名前を変更してからマージする
- 5. ポイントを変数に要約し、ポイントを同じ変数で代入します。
- 6. 同じ変数名の変数スコープ?
- 7. 同じ変数が文字列と等しい場合、変数の値を変更します
- 8. キーを押した後に変数を変更しますか?
- 9. オブジェクト変数は同じ値を保持しますeventhougオブジェクト変数は1つだけ変更されます
- 10. NODE_ENV変数を同時に変更しません
- 11. SHA256関数が入力変数を変更しました
- 12. Android onCharacteristic同じタイムスタンプで複数のパケットを変更しました
- 13. ArrayAdapter:getView引数の変数がfinalに変更されました
- 14. 同じモデル内からlaravelメソッドに変数を渡します
- 15. 更新された値に同じ変数を使用する
- 16. 別の変数の値と同じ名前の変数を作成します。
- 17. C++同じ変数名を持つ複数の親変数
- 18. 関数の変数を変更して同じ軸に複数のプロットを作成する
- 19. PHP同じ変数名
- 20. 変数の重複は変数を変更しません
- 21. Sharpdevelopローカル変数を変更します
- 22. 同じdivで複数回クリックしたときに変更を元に戻す
- 23. 同じ行のローカル変数とグローバル変数にアクセスするbash
- 24. 再帰関数py3で変数が変更されました。
- 25. Javascript変数を関数で変更しますか?
- 26. 引数で指定された変数をbash関数に変更します。
- 27. フラッシュ:同時に数値を変更しますか?
- 28. 同じファイルスコープ変数をいくつかのPythonファイルから変更する
- 29. 値が正しく変更されていない、変数と同じ
- 30. 同じデータを使用する複数変数の変数のデータ変更を制限する方法
はい、まあ、あなたは "影"をつけることができます。しかし、新しいバインディングが古いものと完全に分離されているかのようになります。新しい定義に別の名前を使用するだけではできないシャドウイングでは何もできません。 – luqui
"変更"と "再定義"の違いは何ですか?変数が値にバインドされると、それ以上変更することはできません。しかし、新しい変数をいくつかの新しい値に定義することができます。新しい変数は古い変数と同じ名前でも構いませんが、新しい変数です。 – chi
さて、 'let left =" new "+" value "'のように 'left'をシャドウできますが、' let left = left ++ in'は 'left'の再帰的定義を作成します。その値は 'left'の古い値と' in'を組み合わせた新しい 'left'を作成しません。 – chepner