目次

# LibreLogo

LibreLogoはシンプルで、各国語対応された、Logoに似たプログラミング環境で、タートルベクターグラフィックスを持ち、プログラミングやワープロによる文書作成といったコンピューティング、DTP、グラフィックデザインを教えるためのものです。参照：http://www.numbertext.org/logo/librelogo.pdf.

## LibreLogo ツールバー

The LibreLogo toolbar (View - Toolbars - Logo) contains turtle moving, program start, stop, home, clear screen, program editor/syntax highlighting/translating icons and an input bar (command line).

## タートルを動かすアイコン

“FORWARD 10”（すすむ10）, “BACK 10”（後退10）, “LEFT 15”（左15度回転）, “RIGHT 15”（右15度回転）のLogoコマンドに相当するアイコンがあります。アイコンのどれかをクリックするとタートルのあるページをタートルを表示されるようスクロールさせた上でタートルを移動します。

## Logoプログラムの実行

LibreLogoプログラムとしてのWriterドキュメントのテキスト、（あるいは選択された部分だけの）テキスト文を実行するために“Start Logo program”アイコンをクリックしてください。ドキュメントが空の場合は、プログラムの例がドキュメントに挿入・実行されます。

「とめる」アイコンをクリックするとプログラムの実行が停止します。

## もとの場所へ

「もとの場所へ」アイコンをクリックするとタートルの位置と設定がリセットされます。

## 画面を消す

「画面を消す」アイコンをクリックするとドキュメントに描画されたオブジェクトが削除されます。

## プログラムの編集/構文強調表示/翻訳

The “magic wand” icon sets 2-page layout for program editing, expands and converts to uppercase the abbreviated, lowercase Logo commands in the Writer document. Change the language of the document (LibreOffice - Preferences Tools - Options - Languages and Locales - General - Western) and click on this icon to translate the Logo program to the selected language.

## コマンドライン

コマンドラインに実行したいコマンドを入れてエンターキーを押してください。プログラムを停止するには「とめる」アイコンを使います。

エンターキーを押しつづけると、コマンドラインを繰り返すことができます。たとえば、このようなコマンド列の場合:

     FORWARD 200 LEFT 89

To reset the command line triple-click it or press Command Ctrl+A to select the previous commands, and type the new commands.

## 基本的なタートル設定のグラフィカルユーザーインタフェース

Turtle shape of LibreLogo is a normal fixed size drawing object. You can position and rotate it on standard way, too, using the mouse and the Rotate icon of the Drawing Object Properties toolbar. Modify Line Thickness, Line Color and Area Color settings of the turtle shape to set PENSIZE, PENCOLOR and FILLCOLOR attributes of LibreLogo.

## プログラムの編集

LibreLogoの描画とプログラムは同じWriter文書を使います。LibreLogoのキャンバスはWriter文書の最初のページです。Logoツールバーの「魔法の杖」アイコンを使用すればLibreLogoプログラムの前に改ページを挿入した上でページのズームを設定することができ、またLibreLogoプログラミングに快適な２ページレイアウトでフォントサイズを変更もできます。：左（最初の）ページはキャンバス、右（2番目の）ページはLibreLogoプログラムエディターです。

# LibreLogoプログラム言語

LireLogoは簡単に現地語化できるLogoライクなプログラミング言語で、LibreOffieのネイティブ言語コミュニティによって様々な言語に現地語化されています。教育などで使われる単純なLogoプログラムの場合の古いLogoのシステムに後方互換性があります。

     TO triangle :size
     REPEAT 3 [
       FORWARD :size
       LEFT 120
     ]
     END

     triangle 10 triangle 100 triangle 200

## Logoプログラム言語との相違

- リストの要素はコンマで区切られる: POSITION [0, 0]

- プログラムのブロックとリストは異なる

- - プログラムブロックはスペースまたは角括弧を挿入し改行が必要: REPEAT 10 [ FORWARD 10 LEFT 36 ]

  - リストは角括弧で閉じられていることが必要: POSITION [0, 0]が正しく、POSITION [ 0, 0 ]ではありません

- １行での関数宣言はサポートされていない（TOとENDには改行が必要です）。

## LibreLogoのその他の機能

- 変数名の前のコロンは省略可能です。

       TO triangle size
         REPEAT 3 [ FORWARD size LEFT 120 ]
       END

- 文字列の表記法は正字法とPython文法の両方をサポートしています。

       PRINT "word ; Logoもともとの文法
       PRINT “Arbitrary text.” ; Writer正書法
       PRINT 'Arbitrary text.' ; Python文法

- Pythonリストと文字列の取り扱い

       PRINT “text”[2] ; “x”を表示
       PRINT “text”[1:3] ; “ex”を表示

- Python風なFORループ

- Phthonに似た変数宣言:

       x = 15
       PRINT x

- 特別な問い合わせ関数は存在しない:

       PRINT FILLCOLOR
       p = POSITION
       PRINT p
       REPEAT 10 [ POSITION ANY POSITION p ]

- 関数呼出しでの括弧付与が選択可能

       TO star size color
       FILLCOLOR color
       REPEAT 5 [ LEFT 72 FORWARD size RIGHT 144 FORWARD size ]
       FILL
       END

       star 100 “red”
       star(100, “green”)
       star(100, “blue”)

# LibreLogoの命令

## 基本文法

### 大文字と小文字の区別

各命令、色の定数は大文字と小文字を区別しません：

     PRINT “Hello, World!”
     print “Hello, World, again!”

変数名は大文字と小文字を区別します：

     a = 5
     A = 7
     PRINT a
     PRINT A

### プログラム行

Lines of a LibreLogo program are paragraphs in the Writer document. A program line can contain multiple commands:

     PRINT “Hello, World!” PRINT “LibreLogo”

### コメント

行、又は行の一部分は、セミコロンからその行（段落）の末尾までを注釈にできます：

     ; some comments
     PRINT 5 * 5 ; some comments

### 複数の段落にプログラム行を分ける

行の末尾にチルダ文字を使用することで、一行のプログラムを複数の段落に分割することが可能です：

     PRINT “This is a very long ” + ~
           “warning message”

## タートルの移動

### FORWARD (fd)/進む

     FORWARD 10 ; 前に10pt移動 (1pt = 1/72 inch)
     FORWARD 10pt ; 上と同じ
     FORWARD 0.5in ; 前に0.5 inch移動 (1 inch = 2.54 cm)
     FORWARD 1" ; 上と同じ
     FD 1mm
     FD 1cm

### BACK (bk) /もどる

     BACK 10 ; 10pt後ろにもどる

### LEFT (lt) /左に曲がる

     LEFT 90 ; 反時計回りに90度回転
     LEFT 90° ; 上と同じ
     LT 3h ; 上と同じ (時計の位置)
     LT any ; ランダムな角度に回転

### RIGHT (rt) /右に曲がる

     RIGHT 90 ; 時計回りに90度回転

### PENUP (pu) /ペンをあげる

     PENUP ; タートルは描画せずに動くようになる

### PENDOWN (pd) /ペンをおろす

     PENDOWN ; タートルは描画ながら移動するようになる

### POSITION (pos) /位置

     POSITION [0, 0] ; 左上の角に向きを変えて移動するく
     POSITION PAGESIZE ; 右下の角に向きを変えて移動する
     POSITION [PAGESIZE[0], 0] ; 右上の角に向きを変えて移動する
     POSITION ANY ; ランダムな位置に向きを変えて移動する

### HEADING (seth) /頭の方向

     HEADING 0 ; 北に向く
     HEADING 12h ; 上と同じ
     HEADING [0, 0] ; 左上の角に向く
     HEADING ANY ; ランダムな方に向く

## その他のタートル命令

### HIDETURTLE (ht) /タートルを隠す

     HIDETURTLE ; タートルを隠す (showturtle 命令まで)

### SHOWTURTLE (st) /タートル表示

     SHOWTURTLE ; タートルを表示

### 元の場所へ

     HOME ; reset initial turtle position

### CLEARSCREEN (cs) /画面を消す

     CLEARSCREEN ; 文書に描画されたオブジェクトを消し去る

### FILL and CLOSE　/塗りつぶしと閉領域

     FILL ; close and fill the actual line shape or points
     CLOSE ; close the actual line shape or join the actual points

Example: filling a regular triangle:

     FORWARD 50 LEFT 120 FORWARD 50 FILL

Example: drawing a regular triangle:

     FORWARD 50 LEFT 120 FORWARD 50 CLOSE

## ペンの設定

### PENSIZE (ps) /ペンの太さ

     PENSIZE 100 ; line thickness is 100 points
     PENSIZE ANY ; equivalent of PENSIZE RANDOM 10

### PENCOLOR/PENCOLOUR (pc)　/ペン色

     PENCOLOR “red” ; ペンの色を赤にする (色名による色の定数を参照してください)
     PENCOLOR [255, 255, 0] ; 黄色にする (RGBリスト)
     PENCOLOR 0xffff00 ; 黄色にする(hexaコード)
     PENCOLOR 0 ; 黒色にする (0x000000)
     PENCOLOR ANY ; ランダムな色
     PENCOLOR [5] ; 赤にする (色識別子によって色の定数を参照してください)
     PENCOLOR “invisible” ; 図形表示アウトラインなしの不可視のペン色
     PENCOLOR “~red” ; ランダムな赤色にする

### PENTRANSPARENCY / ペンの透明度

     PENTRANSPARENCY 80 ; 今のペン色の透明度を80%に設定

### PENCAP/LINECAP ペンのはじ/線のはじ

     PENCAP “none” ; 余分な線の端点なし (初期値)
     PENCAP “round” ; 丸い端点
     PENCAP “square” ; 四角い端点

### PENJOINT/LINEJOINT /ペンのつなぎ方/線のつなぎ方

     PENJOINT “rounded” ; 線を丸くつなぐ (初期値)
     PENJOINT “miter” ; 線を鋭くつなぐ
     PENJOINT “bevel” ; 線を斜めにつなぐ
     PENJOINT “none” ; 線をつながない

### ペンの種類

     PENSTYLE “solid” ; 実線 (初期値
     PENSTYLE “dotted” ; 点線
     PENSTYLE “dashed” ; 破線

     ; 次の引数リストで指定された独自な点線-破線パターン:
     ; – 隣接した点の数
     ; – 点の長さ
     ; – 隣接した破線の数
     ; – 破線の長さ
     ; – 点線/破線の間隔
     ; – 型 (省略可能な):
     ;   0 = 点は長方形 (初期値)
     ;   2 = 点は正方形 (長さと間隔はペンサイズによる)

     PENSTYLE [3, 1mm, 2, 4mm, 2mm, 2] ; ...––...––...––

## 塗りつぶし設定

### FILLCOLOR/FILLCOLOUR (fc)　/塗りつぶしの色

     FILLCOLOR “blue” ; fill with blue color, see also PENCOLOR
     FILLCOLOR “invisible” CIRCLE 10 ; unfilled circle
     FILLCOLOR [“blue”, “red”] ; gradient between red and blue
     FILLCOLOR [[255, 255, 255], [255, 128, 0]] ; between white and orange
     FILLCOLOR [“blue”, “red”, 1, 0, 0] ; set axial gradient (with the required rotation and border settings), possible values: 0-5 = linear, axial, radial, elliptical, square and rectangle gradients
     FILLCOLOR [“red”, “blue”, 0, 90, 20] ; linear with 20% border, rotated with 90 degrees from the actual heading of the turtle
     FILLCOLOR [“red”, “blue”, 0, 90, 20, 0, 0, 200, 50] ; from 200% to 50% intensity
     FILLCOLOR [ANY, ANY, 2, 0, 0, 50, 50] ; radial gradient with random colors and 50-50% horizontal and vertical positions of the center

### FILLTRANSPARENCY　/塗りつぶしの透明度

     FILLTRANSPARENCY 80 ; 現在の塗りつぶし色の透明度を80%に設定
     FILLTRANSPARENCY [80] ; 透明度のグラデーションを線形に80%から0%に設定
     FILLTRANSPARENCY [80, 20] ; 透明度のグラデーションを線形に80%から20%に設定
     FILLTRANSPARENCY [80, 20, 1, 90] ; 現在タートルが向いている方向から90度で透明度のグラデーションに角度をつける
     FILLTRANSPARENCY [80, 20, 2, 0, 20, 50, 50] ; 外側20％水平・垂直の中心部で50-50%になる外側80％、内側20％の円形な透明度グラデーションを設定

### FILLSTYLE /塗りつぶしの模様

     FILLSTYLE 0 ; ハッチングなしで塗りつぶし (初期値)
     FILLSTYLE 1 ; 黒の一本線のハッチング (水平)
     FILLSTYLE 2 ; 黒の一本線のハッチング (45度)
     FILLSTYLE 3 ; 黒の一本線のハッチング (-45度)
     FILLSTYLE 4 ; 黒の一本線のハッチング (垂直)
     FILLSTYLE 5 ; 赤のクロスハッチング (45度)
     FILLSTYLE 6 ; 赤のクロスハッチング (0度)
     FILLSTYLE 7 ; 青のクロスハッチング (45度)
     FILLSTYLE 8 ; 青のクロスハッチング (0度)
     FILLSTYLE 9 ; 青の3重線の
     FILLSTYLE 10 ; 黒の幅広一本線のハッチング (45度)

     ; 次の引数リストで指定されたカスタム ハッチング:
     ; – 書式 (1 = 1本線, 2 = 2重線, 3 = 3重線　ハッチング)
     ; – 色
     ; – 間隔
     ; – 角度

     FILLSTYLE [2, “green”, 3pt, 15°] ; 緑のクロスハッチング (15度)

## 図形描画オブジェクト

### CIRCLE /円

     CIRCLE 100 ; 円形を描く (直径 = 100pt)

### ELLIPSE /楕円

     ELLIPSE [50, 100] ; 楕円を50と100の直径で描く
     ELLIPSE [50, 100, 2h, 12h] ; 楕円の扇状を描く (2時の時計の位置から12時へ)
     ELLIPSE [50, 100, 2h, 12h, 2]  ; 楕円状の弓型として描く
     ELLIPSE [50, 100, 2h, 12h, 3]  ; 楕円状の円弧として描く

### SQUARE /正方形

     SQUARE 100 ; 正方形を描く (サイズ = 100pt)

### RECTANGLE /長方形

     RECTANGLE [50, 100] ; draw a rectangle shape (50×100pt)
     RECTANGLE [50, 100, 10] ; draw a rectangle with rounded corners

### POINT /点

     POINT ; ペンの現在の大きさと色で点を描く

CLOSE can join the last points, FILL can fill the shape defined by points. For example, it’s easy to draw a “flat” star starting from its center:

     PENUP
     REPEAT 5 [
       FORWARD 80
       POINT
       BACK 80
       RIGHT 36
       FORWARD 50
       POINT
       BACK 50
       RIGHT 120
     ] FILL

### LABEL /ラベル

     LABEL “text” ; タートルの位置にテキストを表示する
     LABEL 'text' ; 上と同じ
     LABEL "text ; 上と同じ (一単語のみ)

### TEXT

     CIRCLE 10 TEXT “text” ; 今描かれるオブジェクトのテキストを設定する

## フォントの設定

### FONTCOLOR/FONTCOLOUR /フォントの色

     FONTCOLOR “green” ; フォントの色を緑にする

### FONTFAMILY /フォントの書体

     FONTFAMILY “Linux Libertine G” ; フォントの (書体)を設定
     FONTFAMILY “Linux Libertine G:smcp=1” ; 同様にフォント属性を (小型英大文字)に設定
     FONTFAMILY “Linux Libertine G:smcp=1&onum=1” ; スモールキャップ + 古書体

### FONTSIZE /フォントサイズ

     FONTSIZE 12 ; 12ptに設定

### FONTWEIGHT /フォントの太さ

     FONTWEIGHT “bold” ; ボールド体に設定
     FONTWEIGHT “normal” ; 普通のフォントの太さに設定

### FONTSTYLE /フォントのスタイル

     FONTSTYLE “italic” ; イタリック体に設定
     FONTSTYLE “normal” ; 普通の書体に設定

## PICTURE (pic) /図

PICTUREとは次の用途に使われます：

- シェイプのグループ化；

- 新しいラインシェイプの開始;

- SVG画像やSVG/SMILアニメーションの保存;

- 位置とラインシェイプを左端基準で正しくなるようにする

### シェイプのグループ化

     ; PICTURE [ LibreLogoの命令 ]
     PICTURE [ FORWARD 100 CIRCLE 100 ] ; グループ化された木のようなシェイプ

See also “Group” in LibreOffice Writer Help.

     TO tree location
       PENUP POSITION location HEADING 0 PENDOWN
       PICTURE [ FORWARD 100 CIRCLE 100 ] ; tree-like grouped shape
     END

     PICTURE [ tree [230, 400] tree [300, 400] ] ; grouped shapes in a grouped shape

### 新しいラインシェイプを開始する

     PICTURE ; 新しいラインシェイプを始める
     FORWARD 10 PICTURE FORWARD 10 ; 2本のラインシェイプ

### SVG画像の保存

     PICTURE “example.svg” [ CIRCLE 5 ] ; ユーザーフォルダーにSVG画像ファイルとして絵を保存する
     PICTURE “Desktop/example.svg” [ FORWARD 100 CIRCLE 5 ] ; 上と同じ、相対パスを使用
     PICTURE “/home/user/example.svg” [ CIRCLE 5 ] ; Unix/Linuxの絶対パス
     PICTURE “C:\example.svg” [ CIRCLE 5 ] ; Windowsの絶対パス

### SVG/SMILアニメーションを保存する（描画とSLEEPコマンドを併用）

     PICTURE “animation.svg” [ CIRCLE 5 SLEEP 1000 CIRCLE 99 ] ; SVG/SMIL アニメーションとして保存 (SLEEPも参照のこと)
     PICTURE “animation2.svg” [ CIRCLE 5 SLEEP 1000 CIRCLE 99 SLEEP 2000 ] ; 上と同じ、ただし最後のSLEEPによって、SIMLに適合したブラウザーでは2秒後にSVGアニメーションが再開されるループになる

### 左端基準で描画する

Use PICTURE to keep the consistency of positions and line shapes at the left border of Writer:

     PICTURE [ CIRCLE 20 POSITION [-100, 100] CIRCLE 20 ]

## ループ

### REPEAT /繰り返し

     ; REPEAT 数値 [ 命令 ]

     REPEAT 10 [ FORWARD 10 LEFT 45 CIRCLE 10 ] ; 10回繰り返す

     ; 任意の数値

     REPEAT [ POSITION ANY ] ; ずっと繰り返す

### REPCOUNT /繰り返し回数

ループ変数 (FORループやWHILEループでも利用可能)。

     REPEAT 100 [ FORWARD REPCOUNT LEFT 90 ]

### FOR IN

リストの要素について順にループする:

     FOR i IN [1, 5, 7, 9, 11] [
       FORWARD i
       LEFT 90
     ]

文字列内の文字について順にループする:

     FOR i IN “text” [
       LABEL i
       FORWARD 10
     ]

### WHILE

     WHILE TRUE [ POSITION ANY ] ; ずっと繰り返す
     WHILE REPCOUNT <= 10 [ FORWARD 50 LEFT 36 ] ; REPEAT 10 [ ... ]と同じ

### BREAK /中断

ループを止めます。

     REPEAT [ ; ずっと繰り返す
       POSITION ANY
       IF REPCOUNT = 100 [ BREAK ]  ; REPEAT 100 [ ... ]と同等
     ]

### CONTINUE /続行

ループの次の繰り返しに飛びます。

     REPEAT 100 [
       POSITION ANY
       IF REPCOUNT % 2 = 0 [ CONTINUE ]
       CIRCLE 10 ; 2回に1回円を書く
     ]

## 条件

### IF

     ; IF 条件 [ 真のブロック ]
     ; IF 条件 [ 真のブロック ] [ 偽のブロック ]

     IF a < 10 [ PRINT “Small” ]
     IF a < 10 [ PRINT “Small” ] [ PRINT “Big” ]

### AND, OR, NOT /論理積（かつ）、論理和（または）、否定（ではない）

論理演算子。

     IF a < 10 AND NOT a = 5 [ PRINT “0, 1, 2, 3, 4, 6, 7, 8 or 9” ]
     IF a < 10 AND a != 5 [ PRINT “0, 1, 2, 3, 4, 6, 7, 8 or 9” ] ; 上と同じ

## サブルーチン

### TO, END

新しいワード（または手続き）を作ります。

     TO triangle
       REPEAT 2 [ FORWARD 100 RIGHT 120 ] FILL
     END

     REPEAT 10 [ triangle PENUP POSITION ANY PENDOWN ]

### OUTPUT /出力

関数から値を返します。

     TO randomletter
     OUTPUT RANDOM “qwertzuiopasdfghjklyxcvbnm”
     END

     PRINT randomletter + randomletter + randomletter ; 3文字のランダムな文字列を表示します。

### STOP /停止

手続きから戻ります。

     TO example number
       IF number < 0 [ STOP ]
       PRINT SQRT number ; 平方根の表示
     ]

     example 100
     example -1 ; なにも出力されずエラーも起きない
     example 25

## 標準の変数

### ANY /ランダムな値（なんでも）

色などのランダムな値を意味する標準変数です。

     PENCOLOR ANY ; ランダムなペンカラー

### TRUE

論理値。

     WHILE TRUE [ POSITION ANY ] ; ずっと繰り返す
     PRINT TRUE ; trueを表示

### FALSE

論理値。

     WHILE NOT FALSE [ POSITION ANY ] ; ずっと繰り返す
     FALSEを表示 ; print false

### PAGESIZE /ページサイズ

     PRINT PAGESIZE ; 現在のページサイズを表示, 例. [595.30, 841.89]

### PI/π /円周率

     PRINT PI ; 3.14159265359を表示

## 入出力

### 表示

     PRINT “text” ; ダイアログボックスに “text” を表示
     PRINT 5 + 10 ;  15を表示

### INPUT /入力

     PRINT INPUT “Input value?” ; 問合せダイアログボックスで文字列を聞き、それを表示
     PRINT FLOAT (INPUT “First number?”) + FLOAT (INPUT “Second number?”) ; 単純な電卓

## SLEEP /待つ

     SLEEP 1000 ; 1000 ミリ秒 (1 秒)の間待つ

## GLOBAL /どこからでも見える/グローバル

処理手続きをまたいで使われるグローバル変数を設定

     GLOBAL about
     about = “LibreLogo”

     TO example
       PRINT about
       GLOBAL about ; 新しい値にしたいとき
       about = “new value for the global variable”
     END

     example
     PRINT about

## 関数

### RANDOM /ランダム

     PRINT RANDOM 100 ; ランダムな小数 (0 <= x < 100)
     PRINT RANDOM “text” ; “text”中のランダムな文字
     PRINT RANDOM [1, 2] ;  リストのランダムな要素（1または2）

### INT

     PRINT INT 3.8 ; 3 (3.8の整数部)を表示
     PRINT INT RANDOM 100 ; ランダムな整数 (0 <= x < 100)
     PRINT INT “7” ; 文字列パラメータを整数に変換する

### FLOAT /小数（浮動小数点数）

     ; 文字列パラメータを小数に変換する
     PRINT 2 * FLOAT “5.5” ; 11.0を表示

### STR /文字列

     ; 数値パラメータを文字列に変換
     PRINT “Result: ” + STR 5 ; “Result: 5”を表示
     PRINT 10 * STR 5 ; 5555555555を表示

### SQRT

     PRINT SQRT 100 ; 10（100の平方根）を表示

### SIN /サイン（正弦）

     PRINT SIN 90 * PI/180 ; 1.0を印字 (ラジアン表現での90° のサイン)

### COS /コサイン（余弦）

     PRINT COS 0 * PI/180 ; 1.0を印字 (ラジアン表現での 0° のコサイン)

### LOG10 /常用対数

     PRINT LOG10 100 ;  2.0（100の常用対数）を表示

### ROUND /四捨五入

     PRINT ROUND 3.8 ; 4( 3.8の四捨五入)を表示
     PRINT ROUND RANDOM 100 ; ランダムな整数 (0 <= x <= 100)

### ABS /絶対値

     PRINT ABS -10 ; 10（-10の絶対値）を表示

### COUNT /文字数/持っている数

     PRINT COUNT “text” ; 4（“text”の文字数）を表示
     PRINT COUNT [1, 2, 3] ; 3（リストの要素数）を表示

### SET /集合

     ; リストをPythonの集合型に変換
     PRINT SET [4, 5, 6, 6] ;  {4, 5, 6}を表示
     PRINT SET [4, 5, 6, 6] | SET [4, 1, 9] ;  {1, 4, 5, 6, 9}を表示、結合（和集合）
     PRINT SET [4, 5, 6, 6] & SET [4, 1, 9] ;  {4}を表示、交わり（積集合）
     PRINT SET ([4, 5, 6, 6]) - SET [4, 1, 9] ;  {5, 6}を表示、差集合
     PRINT SET [4, 5, 6, 6] ^ SET [4, 1, 9] ; print {1, 5, 6, 9}, 対象差集合

### 範囲

     ; Python-like list generation
     PRINT LIST RANGE 10 ; print [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     PRINT LIST RANGE 3 10 ; print [3, 4, 5, 6, 7, 8, 9]
     PRINT LIST RANGE 3 10 3 ; print [3, 6, 9]

     FOR i IN RANGE 10 50 10 [ ; loop for [10, 20, 30, 40]
       FORWARD i
       LEFT 90
     ]

### LIST /リスト

     ; 集合とリストの変換を利用して重複した要素を削除
     PRINT LIST (SET [1, 3, 5, 5, 2, 1]) ;  [1, 3, 5, 2]を表示

### TUPLE /タプル

Pythonのタプル（変更できないリスト）に変換

     PRINT TUPLE [4, 5]

### SORTED /並び変え/ソート

並び変え（ソート）されたリストを返します。

     PRINT SORTED [5, 1, 3, 4] ; [1, 3, 4, 5]を表示

### SUB /置換

regex(regular expression; 正規表現)パターンを使って文字列を置換します。

     PRINT SUB (“t”, “T”, “text”) ; ,“Text” を表示 ”t” を “T” で置き換える
     PRINT SUB (“(.)”, “\\1\\1”, “text”) ;“tteexxtt”を表示, 全ての文字を2回ずつ繰り返す

### SEARCH /探す/みつける

正規表現のパターンを使って文字列パターンの検索をします。

     IF SEARCH (“\w”, "word") [ PRINT “Letter in the word.” ]

### FINDALL /見つかったものを全部ならべる

指定した正規表現パターンに一致する入力文字列内のすべての部分文字列を見つけます。

     PRINT FINDALL(“\w+”, “Dogs, cats.”) ; [“Dogs”, “cats”]を表示、単語のリスト

### MIN /最小

     PRINT MIN [1, 2, 3] ; 1を表示、リスト中の最小の要素

### MAX /最大

     PRINT MAX [1, 2, 3] ; 3を表示、リスト中の最大の要素

## 色定数

     PENCOLOR “SILVER” ; 名前による設定
     PENCOLOR [1] ; 識別子による設定
     PENCOLOR “~SILVER” ; ランダムな銀色

識別子 | 名前
--- | ---
0 | BLACK/黒
1 | SILVER/銀
2 | GRAY/灰色
3 | WHITE/白
4 | MAROON/くり色/マルーン
5 | RED/赤
6 | PURPLE/紫
7 | FUCHSIA/MAGENTA/明るい紫/フクシア/マゼンタ
8 | GREEN　/緑
9 | LIME/明るい緑/ライム色
10 | OLIVE/柿色/オリーブ色
11 | YELLOW/黄
12 | NAVY/濃い青
13 | BLUE/青
14 | TEAL/マガモ色/くすんで暗い青/ティール
15 | AQUA/アクア/シアン
16 | PINK/ピンク
17 | TOMATO/トマト/トマト色
18 | ORANGE/オレンジ/オレンジ色
19 | GOLD/金/金色
20 | VIOLET/すみれ色/バイオレット/ヴァイオレット
21 | SKYBLUE/空色/スカイブルー
22 | CHOCOLATE/薄い茶色/チョコレート/チョコレート色
23 | BROWN/茶色/ブラウン
24 | INVISIBLE/見えない/不可視

ご支援をお願いします！