F#で状態を変更しないようにするにはどうすればよいですか?

マーサ

私が持ってC# WebAPI使用するアプリケーションF#のライブラリを。

F#ライブラリには、値を持っています:

 let mutable CurrentCustomer:Customer option = None

私も持っています:

 let Customers:Map<string,Customer> option = None

CustomersCustomer両方とも「グローバル変数」です。起動時に、C#アプリケーションは顧客のコレクションをこのグローバル変数にロードしますCustomersそして、私が持っているcustomersController持っていることをPostF#関数呼び出す、setCurrentCustomerグローバル変数を設定CurrentCustomerに保存されたコレクションからのCustomers

 // Post in customersController:

 public HttpResponseMessage Post(string identifier)
 {
     var _customer = FSharpLibrary.setCurrentCustomer(identifier);
     // code
 }

 // setCurrentCustomer function:

 let mutable CurrentCustomer:Customer option = None
 let setCurrentCustomer() =
     CurrentCustomer <- customer |> Some
     CurrentCustomer

変更して状態を変更しないようにする方法はありますCurrentCustomerか?

CurrentCustomerオブジェクトを受け取り、新しいCurrentCustomerオブジェクトを返す関数を作成できることはcustomersController知っていますが、現在の顧客が何に設定されているかをどのようにして知ることができますか?

このグローバル可変変数を持つことを回避する方法はありますCustomerか?

マーク・シーマン

CurrentCustomerを変更して状態の変更を回避する方法はありますか?

はい、それを行うには多くの方法がありますが、ほとんどの場合、FSharpLibrary可変状態に依存しないように設計を変更する必要があります

完全に一般的な答えとして、State Monadを適用することもできますが、多くの場合、それほど複雑ではないもので十分です。しかし、それが正確に何であるかは、あなたがを達成しようとしいるのか知らずに答えることは不可能です。

customersController現在の顧客が何に設定されているかをどのようにして知ることができますか?

現在の顧客をメソッドidentifierからの引数に設定しているため、すでに認識していますPostその値は、メソッド全体の範囲内にあります。

問題は、なぜあなたFSharpLibraryが可変状態にあるのかということです。代わりに純粋関数で実装することはできませんか?

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

状態をreduxから変更して色を変更するにはどうすればよいですか?

分類Dev

Swiftを使用してiOSでUIButtonの状態を変更するにはどうすればよいですか?

分類Dev

onChangeがすぐに状態を変更しないようにするにはどうすればよいですか?

分類Dev

Reactで2つの状態を正しく変更するにはどうすればよいですか?

分類Dev

json応答を変更して状態で保存するにはどうすればよいですか?

分類Dev

Ubuntuが起動時にnumlock状態を変更しないようにするにはどうすればよいですか?

分類Dev

クリックするたびに状態を変更するにはどうすればよいですか?

分類Dev

Reactjsで状態変数の値を変更するにはどうすればよいですか?

分類Dev

setStateの直後にsetTimeoutで反応状態を変更するにはどうすればよいですか?

分類Dev

ヘッドが外れた状態で変更を保存するにはどうすればよいですか?

分類Dev

変更せずに反応状態配列を複製するにはどうすればよいですか?

分類Dev

実行時にUIMenu内のUIActionの状態を変更するにはどうすればよいですか?

分類Dev

JHipsterで休止状態のログレベルを変更するにはどうすればよいですか?

分類Dev

Angular 6でボタンの状態を変更するにはどうすればよいですか?

分類Dev

redux状態でプロパティを追加/変更するにはどうすればよいですか?

分類Dev

redux状態でプロパティを追加/変更するにはどうすればよいですか?

分類Dev

Alpine.jsで共有状態を変更するにはどうすればよいですか?

分類Dev

Javascriptでキーフレームの状態を変更するにはどうすればよいですか

分類Dev

getCellActionsから状態を変更するにはどうすればよいですか?

分類Dev

パス文字列からReduxの状態を変更するにはどうすればよいですか?

分類Dev

複数の入力の状態を処理し、それらの状態を親から変更するにはどうすればよいですか?

分類Dev

状態の一部のみを変更するにはどうすればよいですか?

分類Dev

入力間の状態を変更するにはどうすればよいですか?

分類Dev

チェックボックスの状態を変更するにはどうすればよいですか?

分類Dev

MaterialPageRouteの状態を変更するにはどうすればよいですか?

分類Dev

1つの状態を変更し、他のすべての状態をクリアするにはどうすればよいですか?

分類Dev

Kafka KStreamの予期しない状態を処理するにはどうすればよいですか?

分類Dev

状態を維持しながらコンポーネントの順序を変更するにはどうすればよいですか?

分類Dev

状態を維持しながらコンポーネントの順序を変更するにはどうすればよいですか?

Related 関連記事

  1. 1

    状態をreduxから変更して色を変更するにはどうすればよいですか?

  2. 2

    Swiftを使用してiOSでUIButtonの状態を変更するにはどうすればよいですか?

  3. 3

    onChangeがすぐに状態を変更しないようにするにはどうすればよいですか?

  4. 4

    Reactで2つの状態を正しく変更するにはどうすればよいですか?

  5. 5

    json応答を変更して状態で保存するにはどうすればよいですか?

  6. 6

    Ubuntuが起動時にnumlock状態を変更しないようにするにはどうすればよいですか?

  7. 7

    クリックするたびに状態を変更するにはどうすればよいですか?

  8. 8

    Reactjsで状態変数の値を変更するにはどうすればよいですか?

  9. 9

    setStateの直後にsetTimeoutで反応状態を変更するにはどうすればよいですか?

  10. 10

    ヘッドが外れた状態で変更を保存するにはどうすればよいですか?

  11. 11

    変更せずに反応状態配列を複製するにはどうすればよいですか?

  12. 12

    実行時にUIMenu内のUIActionの状態を変更するにはどうすればよいですか?

  13. 13

    JHipsterで休止状態のログレベルを変更するにはどうすればよいですか?

  14. 14

    Angular 6でボタンの状態を変更するにはどうすればよいですか?

  15. 15

    redux状態でプロパティを追加/変更するにはどうすればよいですか?

  16. 16

    redux状態でプロパティを追加/変更するにはどうすればよいですか?

  17. 17

    Alpine.jsで共有状態を変更するにはどうすればよいですか?

  18. 18

    Javascriptでキーフレームの状態を変更するにはどうすればよいですか

  19. 19

    getCellActionsから状態を変更するにはどうすればよいですか?

  20. 20

    パス文字列からReduxの状態を変更するにはどうすればよいですか?

  21. 21

    複数の入力の状態を処理し、それらの状態を親から変更するにはどうすればよいですか?

  22. 22

    状態の一部のみを変更するにはどうすればよいですか?

  23. 23

    入力間の状態を変更するにはどうすればよいですか?

  24. 24

    チェックボックスの状態を変更するにはどうすればよいですか?

  25. 25

    MaterialPageRouteの状態を変更するにはどうすればよいですか?

  26. 26

    1つの状態を変更し、他のすべての状態をクリアするにはどうすればよいですか?

  27. 27

    Kafka KStreamの予期しない状態を処理するにはどうすればよいですか?

  28. 28

    状態を維持しながらコンポーネントの順序を変更するにはどうすればよいですか?

  29. 29

    状態を維持しながらコンポーネントの順序を変更するにはどうすればよいですか?

ホットタグ

アーカイブ