lstを繰り返し実行し、各要素を面白くしたり、再帰的に新しい関数を返す関数(lst:List(T)、fun:)を書く方法はありますか?関数アプリケーションの結果が次のようになるまでこれを行います:Future [T]、関数型ではありませんか?タイプ/結果が必要なまでの部分的なアプリケーションの適用
fun
は、このような
何かカリー化関数です。
def partialAppRec(lst : List[T], fun: ?) =
//pardon the non-exhaustive pattern match
lst match {
case x::xs =>
val test = fun(x)
if (test: Future[T]) return test
partialAppRec(xs, (fun(x) _))
}
しかし、どんなタイプが楽しいですか?とにかく楽しいと言ってもらえますか?それは、それが取ることができるパラメータを無視します。可変パラメータのfun
を取り込めますが、それはFuture[T]
を返します。 f : ..=>Future[T]
しかし、私はこのようなものが存在するかどうかはわかりません。
ヒント/ご提案はありますか?ありがとう。
'List [T]'の要素にfunを適用したい場合、関数がとりうる唯一のパラメータは 'T'です。 また、スカラで 'return'を使わないでください、(ほとんど)常に間違ったことです。 – Dima
私は何をしたいのか正確ではありません。それはちょうどlst.map(...)になります。これは楽しいことのargsを表現し、楽しいことをしたいと思っている最初のものを使用しています(elt1、elt2、...、elt n) – Jay
私はまず 'fun'のタイプについて考えていました。私はあなたがADT、あるいはちょうど普通の 'Option [Future [T]]'を返すように楽しいと思っています。 – Reactormonk