LOGO
command - 何らかの副作用があるが、値は返さない。例えば print
operation - 値を返す。例えば、sum、first、readlist など。
commandはPascalにおいて値を返さない「プロシージャ」に似ており、operationはPascalにおいて値を返す「関数」に似ている。コマンドとクエリの分離(英語版) (CQS) で言えば、LOGOのoperationはクエリに相当する。LISPに似た慣習として、返す値がtrueまたはfalseに限定されているoperationを述語 (predicate) と呼び、慣習として名前の最後にpをつける。例えば、emptyp、wordp、listp などがある。
プロシージャは、TOとENDで囲まれたコードで次のように定義できる。
LOGOではEDALLなどのコマンドでエディタを呼び出すことができる。エディタではプロシージャを複数行で記述でき、完了の後に解釈される。
新たに定義したプロシージャは名前に対応するワード(上記の例ではCHAIR)としてセーブされるが、LOGOのセッションが終了すると忘れられてしまう。上の例の場合、プロシージャを定義した後は CHAIR と入力すれば REPEAT 4 [FD 100 LEFT 90] FD 200 というコードが実行される。つまり CHAIR というワードはコマンドのように使うことができ、例えば REPEAT 4 [CHAIR] とすれば CHAIR の操作が4回反復される。
CSはグラフィックスウィンドウをクリアするコマンド、WAITは指定した時間だけ待つコマンドである。次のようにすればアニメーションが可能となる。
LOGOはプログラミング言語Smalltalkに大きな影響を与えた。オブジェクト指向がタートル・グラフィックスに起源を持つことはよく知られている。Smalltalkから派生したSqueakで書かれたプログラミング教育環境EtoysもLOGOの影響を強く受けている。
学習者の学習環境として思考の表現方法としては、そのEtoys、同じくSqueakで書かれたMITのScratch、カーネギーメロン大学のAlice(英語版)、Elicaがその可能性を競い合っている。
LOGOはまた、Boxerの基盤言語でもある。Boxerはカリフォルニア大学バークレー校とマサチューセッツ工科大学の共同開発プロジェクトで、「リテラシーモデル」に基づくマイクロワールドの一種である。
KTurtle(英語版)は、緩やかにLOGOに基づいた子供向けプログラミング環境であり、KDE上で動作するKDE Education Projectに含まれる。