質問

私は、ポイントフリーのプログラミングを実験するために、要因とJ言語を学んでいます。言語の基本的なメカニズムは明確に思えますが、アルゴリズム設計にアプローチする方法を感じることは課題です。

私にとって特定の混乱の原因は、さまざまなパラメーターを簡単に実験できるようにコードを構築する方法です。これにより、MathematicaとMatlabが非常に得意なことを意味します。アルゴリズムを設定し、変数を操作して、何が起こるかを視聴します。

明示的な変数なしでこれをどのように行いますか?たぶん私はこれについてすべて間違っていると考えています。ポイントフリープログラミングでこれにどのようにアプローチする必要がありますか?

役に立ちましたか?

解決

連結パラダイム(私の場合のファクタープログラミング言語に適用される)を扱っているときに本当に役立つと感じた3つの重要なアドバイスを以下に示します。

  • 容赦なくコードを要因させます. 。非常に小さな機能を記述します:3〜4を超えるスタックパラメーターがある場合、それをより小さな部分に分割できるかもしれません。
  • データフローコンビネーターの学習に時間を費やしてください (bi、tri、cleave、spread、...)。複雑なスタックシャッフルの必要性を削除しながら、一般的なデータフローパターンを表現できます。
  • 他の引用からの引用を構築することを学びます. 。カレーテクニック(カレー、with、...)を使用して、スタックパラメーターから簡単な引用を作成し、物事が複雑になりすぎるとフライド引用符(「フライ」ボカブ)を使用します。スタックシャッフルなしで、パターンからの複雑なネストされた引用を簡単に構築できます。

そして常に、既存のコードを読んで「歩いて」。要因では、実行時間を探索し、物事がどのように機能しているかを見るのは非常に簡単です。

混乱の特定のソースについては、アルゴリズムに多くの入力パラメーターがある場合、最も重要なことは、それらがどのように使用されるかを調べることです。データフローパターンの収穫。関連するパラメーターの最小セットで操作を「スケジュール」する最良の方法について本当に考える必要があります。

それは非常に難しい経験ですが、成功したときに本当に報いることもあります。その後、私たちは人間のコンパイラのように感じます。

幸運を!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top