問題タブ [unfold]

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.

0 投票する
2 に答える
74 参照

python - Python で独自の出力に反復のリストを生成する

基本的な質問のようで申し訳ありませんが、どこにも見つかりませんでした。Python 2 では、すべてのステップのリストを格納する独自の出力に 1 変数関数を適用したいと考えています。つまり、f(x) が x*x を返し、2 から反復する場合、取得する必要があります。

[2, 4, 16, 256, 65536, ...]

理想的には、関数f、最初の入力1、および保持したい反復回数を渡す必要があります。

これは、ある意味で、関数型プログラミングの反対でreduceあり、やや似ていると思います。unfold

これを行う単純な方法は、次のように書くことです

out = [2] for x in xrange(5): out.append(f(out[-1]))

これを行うための良いPythonicの方法は何ですか? どうもありがとうございました。

0 投票する
1 に答える
300 参照

haskell - 奇妙なタイプのエラーが一致しませんでした

私は単純な1行の機能を持っています:

それはうまくいきます:

次に、 unfoldr lambda を一意の関数として抽出します。

今、私は奇妙なエラーがあります:

0 投票する
2 に答える
1591 参照

haskell - Haskell の unfoldr のタイプの正当な理由は何ですか?

のドキュメントに示されている例unfoldr :: (b -> Maybe (a, b)) -> b -> [a]:

冗長ペアで簡単に書くことができます:

unfoldrペアは何のために必要(a,b)ですか?その型が ではないのはなぜ(a -> Maybe a) -> a -> [a]ですか?

0 投票する
2 に答える
95 参照

list - アキュムレータを返すカスタム展開

次のような最後のアキュムレータ値を返すカスタム展開関数を作成しようとしています:

私は次のようにすることができました:

List.revしかし、結果のリストを避けて、正しい順序ですでに生成したかったのです。リストを作成するには継続を使用する必要があると思いますが、私は関数型プログラミングにまったく慣れていないため、まだ継続について理解できていません。私が想像できるすべての選択肢は、結果のリスト内にアキュムレータを置くか、関数によって返されることを許可しません。

これを行う方法はありますか?

これは個人的な学習演習であるため、完成したコードを単に提供するのではなく、その方法を説明する回答を希望します。