- 記法(Notation) は思考を助ける重要な道具であり、数学とプログラミング言語の両方で中核的な役割を果たす
- APL言語は、数学的記法の利点をプログラミング言語の実行可能性と汎用性に結びつけようとする試みとして開発された
- 優れた記法の特徴として、簡潔さ、明確さ、示唆性、詳細の下位化、形式的な証明可能性などがある
- さまざまな数学的構造(多項式、変換、グラフなど)を APLで効率よく表現し変換できる
- 記法の導入と学習は文脈の中で自然に行われるべきであり、記法の構造性と汎用性も重要である
思考の道具としての記法
- 化学、植物学などの科学分野でも、体系的な命名法が学問の発展を促進してきた
- ジョージ・ブールは、言語それ自体が思考の手段であることを強調した
- 数学的記法は、思考を支援する言語の代表的な例であり、思考の負担を減らし、思考力を高める
- A.N.ホワイトヘッドとチャールズ・バベッジは、数学記法の重要性を強調した
プログラミング言語が思考の道具となる可能性
- プログラミング言語は 汎用性 と 明確性 という強みを持つ
- コンピュータによるアイデアの実験や、明確な思考実験が可能である
- しかし、ほとんどのプログラミング言語は数学的記法に比べると、思考の道具としての役割が弱い
- APLは、明瞭性と精密さを志向し、思考を支援する記法として設計された
優れた記法の主な特性
- 問題表現のしやすさ: 問題から直接導かれる構造を容易に表現できなければならない
- 示唆性: 表現された形が類似または拡張された問題を示唆すべきである
- 詳細の下位化: 複雑な詳細を単純化し、思考を助ける構造を提供する
- 簡潔さ: 最小限の記号と規則で広範な表現を可能にしなければならない
- 形式的な証明可能性: 記法が形式的証明と演繹的推論に適していなければならない
APLの基本的な記法技法の紹介
- ベクトル、行列などの配列ベースの構造を自然に扱う
- 関数および演算子はベクトル/行列に要素ごとに自動適用される
- リダクション(
/)、スキャン(\)、内積(.)のような演算子(operators)で関数合成を表現する
⍳, ⌽, ⍴, +, ×, * などの基本記号で豊かな数式を構成できる
- すべての関数は右優先規則に従い、括弧なしでも自然な数式を書ける
問題解決と思考促進の例
- 三角数、階乗などの数学的数列を簡単な数式で表現する
- 多項式の表現や乗算、微分などの演算を一貫した規則で簡潔に処理する
- グラフ理論(木、推移閉包、全域木)も配列演算で明確に表現できる
- 順列、ブール代数、数体系変換(素因数分解)など多様な分野へ拡張できる
形式的証明と構造化された思考
- すべての演算と式は明確に実行可能な形で表現されるため、コンピュータによる自動検証が可能である
- 数学的帰納法、全探索、恒等式の列挙によって、さまざまな形式的証明の例が示される
- リダクションとスキャンの分割(identity)および内積演算の結合性と分配性を形式的に証明する
- ニュートン対称関数、多項式の乗算および微分公式を直接証明する
APLと伝統的な数学記法の比較
- APLは関数の明確な定義、一貫した配列演算、豊かな記号体系を提供する
- すべての演算に優先順位規則の代わりに右優先の実行規則を適用する
- 数学記号の使用に伴う複雑さを減らし、形式的操作(formal manipulation)を支援する
- 構文は簡潔で規則は一貫しており、初心者にも熟練者にも有利である
記法の導入と学習方法
- 別個の「言語講義」なしに、文脈の中で必要な記法だけを自然に紹介する方式を強調する
- 具体的な問題状況の中で新しい記号を直感的に学習する
- 記法そのものの難しさよりも、記法が示唆する多様な可能性と拡張性を認識することが重要である
APLの拡張可能性と提案
- 複素数処理を含む関数拡張の提案
- unique elements および summary 関数の標準化が必要
- より一般化された演算子(operator)の導入により、ベクトル微積分など追加の主題を支援できる
- 言語設計の明確性と推論能力の向上を目指す
効率性と明確性のバランス
- 明確で分析可能な記法をまず定義し、その後に最適化によって効率を高める方式を推奨する
- アルゴリズムの明確化は、その後の最適化やコンパイラ最適化にも役立つ
- APLで書かれた基本表現は、学術的探究と産業的応用の両方に貢献する可能性がある
1件のコメント
Hacker Newsのコメント
記法は単にある表現を別の表現に置き換えるだけではなく、より深い意味を持つ
APLの衰退は、Lotus 123とMS Excelの登場によるものだ
サピア=ウォーフ仮説は、言語が思考を制限しうることを示唆している
APLを使ったプロジェクトを開発中である
Freeformノートアプリを完成できなかったのが残念だ
「思考の道具」という表現が最初に使われた講義である
関連資料として、Iversonの「Notation as a Tool of Thought」に言及している