2016-09-15 8 views
2

署名付き関数を考える:A => F[G[B]]を。 FGタイプのモナドインスタンスがあります。 F[G[A=>B]変換 'A => F [G [B]]' '] F [G [A => B' にスカラ

それは署名で何かにそれを変換することは可能ですか?そのような変換の一般的な名前はありますか? prettify2の実装がどうなるかつまり

def pretiffy(x: String): Future[Option[String]] = Future{if(x == "") None else Some(s">>>$x<<<")} 
val pretiffy2: Future[Option[String => String]] = ??? 

アップデート:猫やスカラを使っていただければ幸いです。

+0

これは*高級タイプ*と呼ばれます。 'Scalaz'や' Cats'を使って作業することができます。 – sebszyller

+0

ありがとうございます。これは確かに私が必要なものです。これを行う方法? –

+3

'String => List [Option [Integer]]'があるとします。 List [Option [String => Integer]]を生成する必要があります。それはできますか?結果のリストはどれくらいの期間ですか?どのくらいの 'None'sが含まれていますか?答え:) pawel.panasewicz @ –

答えて

5

は、私たちがString=>List[Option[Integer]]があるとします。 List[Option[String=>Integer]]を作成する必要があります。私たちはこれにどのようにアプローチすべきですか?たとえば、結果のリストの長さはどのくらいですか?どのくらいの数のNoneが含まれていますか?

明らかにこれらの質問は、(1が最もモナドについて同様の質問をすることができますよう、または実際に最もモナド)要求された変換は、任意のモナドのために存在しないことを意味し何の答えを、持っていません。

+0

...それはなぜスカラズと猫を調べるための推奨です。これらと同様のフレームワークはモナドの概念を一般化して、 'Unit'関数の場合は' None'、 'List'の場合は' Nil'を抽出して汎用化することができます。 –

関連する問題