7

ポイントフリープログラミングを試すために、Factor 言語と J 言語を学んでいます。言語の基本的な仕組みは明確に見えますが、アルゴリズムの設計にどのようにアプローチするかを理解するのは簡単ではありません。

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

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

4

2 に答える 2

9

以下に、連結パラダイム (私の場合は Factor プログラミング言語に適用されます) を扱う際に非常に役立つ 3 つの重要なアドバイスを示します。

  • コードを容赦なく因数分解してください。非常に小さな関数を作成します。スタック パラメータが 3 ~ 4 個を超える場合は、小さな部分に分割できます。
  • データフロー コンビネータ(bi、tri、cleave、spread など) の学習に時間を費やしてください。複雑なスタック シャッフルの必要性を排除しながら、一般的なデータフロー パターンを表現できます。
  • 他の引用から引用を作成する方法を学びます。カリー化技法 (curry、with、...) を使用して、スタック パラメーターから単純な引用を作成し、複雑すぎる場合は、揚げた引用 (「フライ」語彙) を使用します。スタックをシャッフルすることなく、パターンから複雑なネストされた引用を簡単に構築できます。

そして、いつものように、既存のコードを読んで「ウォーク」します。Factor では、ランタイムを調べて、物事がどのように機能しているかを確認するのは非常に簡単です。

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

なかなか難しい経験ですが、成功したときのやりがいも大きいです。その後、私たちは人間のコンパイラのように感じます..

幸運を!

于 2010-08-28T20:33:42.030 に答える