ポイントフリーコードをいじる?
-
01-10-2019 - |
質問
私は、ポイントフリーのプログラミングを実験するために、要因とJ言語を学んでいます。言語の基本的なメカニズムは明確に思えますが、アルゴリズム設計にアプローチする方法を感じることは課題です。
私にとって特定の混乱の原因は、さまざまなパラメーターを簡単に実験できるようにコードを構築する方法です。これにより、MathematicaとMatlabが非常に得意なことを意味します。アルゴリズムを設定し、変数を操作して、何が起こるかを視聴します。
明示的な変数なしでこれをどのように行いますか?たぶん私はこれについてすべて間違っていると考えています。ポイントフリープログラミングでこれにどのようにアプローチする必要がありますか?
解決
連結パラダイム(私の場合のファクタープログラミング言語に適用される)を扱っているときに本当に役立つと感じた3つの重要なアドバイスを以下に示します。
- 容赦なくコードを要因させます. 。非常に小さな機能を記述します:3〜4を超えるスタックパラメーターがある場合、それをより小さな部分に分割できるかもしれません。
- データフローコンビネーターの学習に時間を費やしてください (bi、tri、cleave、spread、...)。複雑なスタックシャッフルの必要性を削除しながら、一般的なデータフローパターンを表現できます。
- 他の引用からの引用を構築することを学びます. 。カレーテクニック(カレー、with、...)を使用して、スタックパラメーターから簡単な引用を作成し、物事が複雑になりすぎるとフライド引用符(「フライ」ボカブ)を使用します。スタックシャッフルなしで、パターンからの複雑なネストされた引用を簡単に構築できます。
そして常に、既存のコードを読んで「歩いて」。要因では、実行時間を探索し、物事がどのように機能しているかを見るのは非常に簡単です。
混乱の特定のソースについては、アルゴリズムに多くの入力パラメーターがある場合、最も重要なことは、それらがどのように使用されるかを調べることです。データフローパターンの収穫。関連するパラメーターの最小セットで操作を「スケジュール」する最良の方法について本当に考える必要があります。
それは非常に難しい経験ですが、成功したときに本当に報いることもあります。その後、私たちは人間のコンパイラのように感じます。
幸運を!
所属していません StackOverflow