タグ付けされた質問 「combinators」

18
Yコンビネーターとは何ですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 Yコンビネーターは、物事の「機能」面からのコンピューターサイエンスコンセプトです。ほとんどのプログラマーは、コンビネーターについて聞いたことさえあれば、コンビネーターについてまったく知りません。 Yコンビネーターとは何ですか? コンビネーターはどのように機能しますか? 彼らは何のために良いのですか? それらは手続き型言語で役立ちますか?

4
無限リストでのfoldlとfoldrの動作
この質問の myAny関数のコードでは、foldrを使用しています。述語が満たされると、無限リストの処理を停止します。 私はfoldlを使って書き直しました: myAny :: (a -> Bool) -> [a] -> Bool myAny p list = foldl step False list where step acc item = p item || acc (step関数への引数は正しく逆になっていることに注意してください。) ただし、無限リストの処理を停止しなくなりました。 私はApocalispの答えのように関数の実行を追跡しようとしました: myAny even [1..] foldl step False [1..] step (foldl step False [2..]) 1 even 1 || (foldl step …

1
働く男性のためのコンビネーターの説明
コンビネーターとは何ですか? それは(SOで定義されている)「自由変数のない関数または定義」ですか? または、これについてはどうでしょうか。JohnHughesによる、Arrowsに関する彼の有名な論文によると、「コンビネータはプログラムフラグメントからプログラムフラグメントを構築する関数です」。これは、「...手ですべての詳細を書き込むのではなく、自動的にプログラムします。」彼はさらに続けて、そのようなコンビネーターの2つの一般的な例であるmapと言いfilterます。 最初の定義に一致するいくつかのコンビネーター: S K Y To Mock a Mockingbirdの他の人(私は間違っているかもしれません-私はこの本を読んだことがありません) 2番目の定義に一致するいくつかのコンビネーター: 地図 フィルタ フォールド/リデュース(おそらく) >> =、作成、fmapのいずれか????? 私は最初の定義には興味がありません-それらは私が実際のプログラムを書くのを助けにはしません(あなたが私に間違っていると納得させれば+1)。 2番目の定義を理解してください。map、filter、reduceは便利だと思います。これらを使用すると、より高いレベルでプログラムを作成できます。ミスが少なく、コードが短くて明確になります。コンビネーターに関する私の特定の質問のいくつかはここにあります: マップ、フィルターなどのコンビネーターの他の例は何ですか? プログラミング言語はどのコンビネーターによく実装されていますか? コンビネーターは、より良いAPIを設計するのにどのように役立ちますか? 効果的なコンビネーターを設計するにはどうすればよいですか? 非関数型言語(Javaなど)と似ているコンビネーターとは何ですか、またはこれらの言語はコンビネーターの代わりに何を使用していますか? 更新 @CA McCannのおかげで、コンビネータについて多少理解が深まりました。しかし、1つの質問はまだ私にとって問題です。 コンビネーターを多用して書かれた関数型プログラムと書かれていない関数型プログラムの違いは何ですか? 答えは、combinator-heavyバージョンのほうが短く、明確で、より一般的だと思いますが、可能であれば、より詳細な議論をお願いします。 またfold、一般的なプログラミング言語での複雑なコンビネーターの例や説明(つまり、より複雑)も探しています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.