問題タブ [scalaz]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - if(p(f(a)、f(b))aelsebと機能的に同等
私は、次のことを表現するためのより良い機能的な方法があるに違いないと推測しています。
したがって、この例ではf == foo
とp == _ < _
。これには、scalazに巧妙な巧妙さが必要です。私は私が書くことができることを使用して見ることBooleanW
ができます:
しかし、私はaとbを一度だけ参照するコードを書くことができると確信していました。これが存在する場合、それは他のFunction1W
何かの組み合わせにあるに違いありませんが、scalazは私には少し謎です!
編集:私がここで求めているのは「どうやってこれを書くのか」ではないと思います。しかし、「そのような関数の正しい名前と署名は何ですか?それは、クライスリ、コモナドなど、私がまだ理解していないFPのものと関係がありますか?」
scala - Scalaz の関数構文パズル
scalaz の導出に関するNick Partidge のプレゼンテーションを見た後、私はこの例を見なければなりませんでした。
メソッドが何をしているのかを理解しようとして<|*|>
いました。ソースコードは次のとおりです。
OK、それはかなり紛らわしい (!) - しかし、次の<**>
ように宣言されているメソッドを参照しています。
だから私はいくつかの質問があります:
- このメソッドは、1 つの型パラメーター ( )のより高次の型を受け取るように見えますが、 (2 つの型パラメーターを持つ) を渡すことができるのはなぜですか?
M[B]
Validation
- 構文は、2 番目のメソッドが期待する
(_: A, _: B)
機能を定義します。タプルが見えない!(A, B) => Pair[A,B]
scala - スカラス・クライスリの質問
scalazライブラリにはKleislitrait
と呼ばれるものがあります。コードを見る:
値 2 で関数を呼び出すと、次のようk
になります。
私の質問は: Scalaz を使用して f と g を組み合わせて関数 m を取得し、m(2) の出力が次のようになるようにするにはどうすればよいですか?
これは可能ですか?
scala - Scalaz:Cokleisli構成のユースケースのリクエスト
この質問は炎の餌としてではありません!明らかかもしれませんが、私は最近Scalazを見ています。ライブラリが提供する機能の一部が必要な理由を理解しようとしています。ここに何かがあります:
関数にprintlnステートメントをいくつか入れて、何が起こっているかを確認しました(ただし、そのような副作用を回避しようとした場合はどうすればよいでしょうか?)。私の機能は次のとおりです。
それから私はそれらをcokleisliを介して結合し、NEL[Int]
これは何を印刷しますか?
RES値は、最終的なNELの(文字列)要素の文字数です。私には2つのことが起こります。
- 関係するメソッドシグネチャから、この方法でNELが削減されることをどのようにして知ることができましたか?(私は結果をまったく期待していませんでした)
- これのポイントは何ですか?適度にシンプルでわかりやすいユースケースを私のために蒸留することはできますか?
この質問は、レトロニムのような素敵な人がこの強力なライブラリが実際にどのように機能するかを説明するための薄いベールのある嘆願です。
scala - Scalazを使用してオプションのリストをリストのオプションに変換する
List[Option[T]]
をに変換したいOption[List[T]]
。関数のシグネチャタイプは次のとおりです。
Some
予想される動作は、 sのみSome
を含むリストを要素の内部の要素のリストを含むリストにマップすることSome
です。一方、入力リストに少なくとも1つあるNone
場合、期待される動作は単にを返すことNone
です。例えば:
scalazを使用しない実装例は、次のようになります。
同様の例をどこかで見たのを覚えていますが、コードを単純化するためにScalazを使用しています。どのように見えますか?
Scala2.8を使用しているが、 Scalazを使用していない、もう少し簡潔なバージョンPartialFunction.condOpt
:
scala - この非同期JavaネットワークAPIをモナディック表現(または他の慣用的なもの)に変換できますか?
コールバックベースのスタイルを使用してプロプライエタリバスに接続して通信するためのJavaAPIが提供されました。私は現在、概念実証アプリケーションをscalaに実装しており、もう少し慣用的なscalaインターフェイスを作成する方法を模索しています。
典型的な(簡略化された)アプリケーションは、Javaでは次のようになります。
Scalaでは、(T => Unit)からIListenerへの暗黙の変換を明らかに定義できます。これにより、物事が少し読みやすくなります。
これを見ると、scalazの約束とf#非同期ワークフローの両方を思い出しました。
私の質問はこれです:
これを理解のために、または同様に慣用的なものに変換できますか(これは俳優にもかなりうまくマッピングされるべきだと思います)
理想的には、次のようなものを見たいです。
scala - ScalaでOption値を組み合わせる方法は?
Scalaの値に演算f: (T,T) => T
を適用できるようにしたい。2つの値のいずれかがである場合Option[T]
の結果が必要です。None
None
より具体的には、次のことを行うためのより短い方法があるかどうかを知りたいです。
私は試しまし(x zip y) map {case (u,v) => f(u,v)}
たが、結果はではありIterator[T]
ませんOption[T]
。