これは機能の概要一覧です。すべてを見るにはリファレンスを参照してください。
turtleSpaces は Apple (LCSI) Logo 環境の完全な実装を土台にしています。Logo はかつて「パーソナルコンピュータ上に実装された中で最も強力で使いやすいコンピュータ言語」と評されました。(David Thornburg)
Logo は「関数型」の言語で、互いに出力を返し合う「プリミティブ」(コマンド)を基礎にしています。プリミティブは連ねることができ、データを取得し、計算し、さまざまに変換してから、保存したり、それをもとに動作させたりできます。
ユーザーは「プロシージャ」を作れます。プロシージャはプリミティブとまったく同じようにふるまい、プリミティブを置き換えることもできます。プロシージャはプリミティブと同じように、引数を取り、出力を返せます。2 つの数を掛け合わせるプリミティブ product を例に取りましょう:
to product :a :b
make "result 0
repeat :a [make "result sum :result :b]
output :result
end
これで product を自分のプロシージャで実質的に置き換えたことになります。
Logo はもともと、子どものための言語の遊び場として構想されました。そのため、文字列と「リスト」(「項目」の並び)の扱いが非常に強力です。たとえば [pig duck cow] や [[Bob 53][Frank 22][Sue 34]] のように書きます。リストや文字列(Logo では「ワード」と呼びます)を組み立て、並べ替え、順序を変えるためのプリミティブが各種そろっています。
タートルは後から Logo に加えられましたが、いまでは最もよく知られた特徴になりました。タートルは自分自身を基準に動くグラフィカルな「カーソル」で、他の「絶対座標」的なグラフィックスシステムとは異なります(もちろん Logo でも絶対座標で操作できます)。タートルに進めと回れと伝えると、自分の位置と向きを基準にそのとおりに動きます。
turtleSpaces では、タートルに大幅な機能を追加しています:
タートルが存在できる space は複数あり、タートルを複数の空間にまたがって配置できます(newspace selectspace)。それぞれの空間は無限に広がる三次元のキャンバスです。
どのタートルもカメラになれます。setview で選択します。setviewpoint を使えば、タートルに対するカメラの相対位置を変えられます。タートルはライトとしてもはたらきます。スポットライト、ポイントライト、あるいは光なしを選べます。
プロシージャと変数(containers)、それにいくつかの設定はタートルごとに固有です。コンテナはタートル間で share でき、プロシージャは特別な libby(ライブラリ)タートルを使って共有できます。
タートルはプロセススレッドである workers によって「運転」されます。1 つのワーカーが複数のタートルを(順番に)運転することも、複数のワーカーが複数のタートルを運転することもできます。複数のワーカーが同じタートルを運転しようとすることさえ可能です! ワーカーとタートルは別物です。タートルは車、ワーカーは運転手だと考えてください。
turtleSpaces には telnet で接続して、端末や別のアプリケーション(API)からワーカーを操作することもできます。
従来の Logo のタートルは線を引くか面を塗ることしかできませんが、turtleSpaces は OpenGL を土台にしているため、次のようなさまざまな shapes を作れます:
ボクセルやクアッドを speckle(Minecraft 風にピクセル化)できます。ピクセルベースのプロット(2 次元と 3 次元の両方)を作り、それを speck として使うこともできます。
サウンド系のプリミティブには、伝統的な toot(tone)プリミティブ、ホワイトノイズを生成する noise、playnotes があり、内蔵の tracker で作った音楽を playmusic で再生できます。OS 内蔵の音声合成を say で使うこともできます(macOS と Linux)。
turtleSpace にはユーザーがいます。turtleSpaces を使うには、ユーザーとして「ログイン」します。
ユーザーのワークスペースは「turtleSpace」(TSP) フォルダとして保存されます。このフォルダはプロシージャへの変更をすべて保存するので、開発のどの段階にも戻れます(undo , redo)。対話プロンプトに入力した内容も保存されます。
スナップショットは save または takesnapshot のときに作られます。セーブポイントは、ワークスペースを読み込んだときに復元される状態です。そのまま開発を続けて、load autosave で「現在」の状態に戻すこともできます。takecover を使えば、(cat alog で使われる)永続的な「カバー」を作れます。
対話プロンプトの履歴はプログラムから読み出せます(historycount historyitem historylist)。
IDE を初めて開くと、カメのシェリー(Shelly)がメニューバー、ワークスペース、実行ボタン、コンソール、3D ビュー、作例を案内します。1 分ほどで終わり、読み上げもできます。もう一度見るには ヘルプ → ようこそ を選びます。同じツアーはこのサイトでも読めます。
プログラムがエラーで止まると、シェリーが現れて Claude に説明してもらうかたずねます。これはどういう意味? はエラーを一般的に説明し、自分のコードに沿って説明して は自分のプログラムの何がいけなかったかを説明します。打ち間違いで試してみましょう。
forwrd 50
シェリーのエラー手助けは、サインインしているときに表示されます。
サインインすると、エディターに AI コードアシスタントの Claude タブが現れ、Logo や自分のプログラムについて質問できます。テキストエディターとブロック画面の右上にある丸い Claude ボタンには 3 つの選択肢があります。Comment procedure はプロシージャにコメントを付け、Explain with Claude はプロシージャやプログラム全体をやさしい言葉で説明し、Teach Me How はそれをタートリアル(Turtorial)にします。
AI の答えは間違うことがあるので確かめてください。何が送られるかは、プライバシーポリシーの AI features をご覧ください。
タートリアルは、シェリーがプログラムから作るレッスンです。答えを渡すのではなく、ヒントや小さなクイズ、答え合わせをする ボタンを使いながら、自分でそのプログラムを一歩ずつ組み立てられるよう案内します。学ぶ人が獲得したバッジをもとにレベルを合わせ、手がかりがなければ初心者として扱います。
タートリアルは空のワークスペースで始まるので、保存していない作業があれば先に保存するようたずねます。途中でやめたときは、同じブラウザーで ヘルプ → Resume を選ぶと続きから再開できます。サインインが必要です。
アイデアがほしいときは? 毎日新しい言葉が、IDE の起動時にコンソールに表示されます。言葉は UTC の午前 0 時に変わります。そのお題で何か作って、公開するときに 今日のお題 のタグを付け、ギャラリーでほかの人が今日作った作品を見てみましょう。
IDE とこのサイトは English、Español、Français、日本語、Polski で使えます。言語は 設定 → 言語 で選びます。Logo のコマンドはどの言語でも英語のままなので、コード例はどこでも動きます。