リファレンスマニュアル
基本構文
コメント
// 単一行コメント /* 複数行 コメント */
変数宣言
変数 名前 = "田中" 変数 年齢 = 25 定数 PI = 3.14159
表示(出力)
表示("hello")
表示("年齢:", 25)
データ型
| 型 | 説明 | 例 |
|---|---|---|
| 数値 | 整数・小数 | 42, 3.14, -10 |
| 文字列 | テキスト | "hello", '世界' |
| 真偽値 | 論理値 | 真, 偽 |
| 配列 | 順序付きコレクション | [1, 2, 3] |
| 辞書 | キー・バリューペア | {"名前": "田中"} |
| 無 | 空の値 | 無 |
演算子
算術演算
| 演算子 | 説明 |
|---|---|
| + | 加算 |
| - | 減算 |
| * | 乗算 |
| / | 除算 |
| % | 剰余 |
| ^ | べき乗 |
比較演算
| 演算子 | 説明 |
|---|---|
| == | 等しい |
| != | 等しくない |
| < | より小さい |
| > | より大きい |
| <= | 以下 |
| >= | 以上 |
論理演算
| 演算子 | 説明 |
|---|---|
| かつ | AND |
| または | OR |
| ではない | NOT |
制御構造
条件分岐(if)
もし x > 10 なら
表示("大きい")
それ以外 もし x > 5 なら
表示("中くらい")
それ以外
表示("小さい")
終わり
ループ(while)
変数 i = 0
繰り返す i < 5:
表示(i)
i = i + 1
終わり
ループ(for)
繰り返す i から 0 まで 10:
表示(i)
終わり
各要素ループ(foreach)
変数 配列 = [1, 2, 3]
各 n を 配列 の中:
表示(n)
終わり
関数
関数定義
関数 足す(a, b):
戻す a + b
終わり
表示(足す(3, 5)) // → 8
デフォルト引数
関数 挨拶(名前, 敬語 = 偽):
もし 敬語 なら
表示("いらっしゃいませ、" + 名前 + "様")
それ以外
表示("こんにちは、" + 名前)
終わり
終わり
挨拶("田中") // こんにちは、田中
挨拶("田中", 真) // いらっしゃいませ、田中様
可変長引数
関数 合計(*数字):
変数 合 = 0
各 n を 数字 の中:
合 = 合 + n
終わり
戻す 合
終わり
表示(合計(1, 2, 3, 4, 5)) // → 15
配列
配列の作成と操作
変数 配列 = [1, 2, 3, 4, 5] // アクセス 表示(配列[0]) // → 1 表示(配列[-1]) // → 5 // 追加 追加(配列, 6) // 削除 削除(配列, 0) // 長さ 表示(長さ(配列))
リスト内包表記
// 基本形式 変数 倍 = [n * 2 を n から [1, 2, 3]] 表示(倍) // → [2, 4, 6] // 条件付き 変数 偶数 = [n を n から [1, 2, 3, 4, 5] もし n % 2 == 0] 表示(偶数) // → [2, 4] // 複合 変数 処理 = [n * n を n から [1, 2, 3] もし n > 1] 表示(処理) // → [4, 9]
配列メソッド
| メソッド | 説明 |
|---|---|
| ソート(配列) | ソート |
| 逆順(配列) | 逆順 |
| スライス(配列, 開始, 終了) | 部分配列 |
| 位置(配列, 値) | インデックス取得 |
| 存在(配列, 値) | 存在確認 |
文字列
文字列操作
変数 文 = "こんにちは"
// 長さ
表示(長さ(文)) // → 5
// 部分文字列
表示(部分文字列(文, 0, 3)) // → こんに
// 置換
変数 新文 = 置換(文, "こん", "さよう")
表示(新文) // → さようにちは
// 大文字・小文字
表示(大文字("hello")) // → HELLO
表示(小文字("HELLO")) // → hello
文字列メソッド
| メソッド | 説明 |
|---|---|
| 始まる(文字列, 接頭辞) | 開始確認 |
| 終わる(文字列, 接尾辞) | 終了確認 |
| 繰り返し(文字列, 回数) | 繰り返し |
| 分割(文字列, 区切り文字) | 分割 |
| 結合(配列, 区切り文字) | 結合 |
辞書(ハッシュ)
辞書の操作
変数 辞書 = {"名前": "田中", "年齢": 25, "職業": "エンジニア"}
// アクセス
表示(辞書["名前"]) // → 田中
// 設定
辞書["年齢"] = 26
// キー一覧
表示(キー(辞書))
// 値一覧
表示(値(辞書))
// サイズ
表示(長さ(辞書))
クラス
クラス定義
クラス 人:
関数 初期化(名前, 年齢):
自分.名前 = 名前
自分.年齢 = 年齢
終わり
関数 紹介():
戻す 自分.名前 + "は" + 文字列化(自分.年齢) + "歳です"
終わり
終わり
変数 田中 = 新規 人("田中", 25)
表示(田中.紹介())
組み込み関数(主要)
| 関数 | 説明 |
|---|---|
| 表示(...) | 出力 |
| 入力() | 入力 |
| 長さ(値) | 長さ取得 |
| 型判定(値, 型名) | 型確認 |
| 文字列化(値) | 文字列変換 |
| 数値化(値) | 数値変換 |
| 絶対値(数値) | 絶対値 |
| 最大値(...) | 最大値 |
| 最小値(...) | 最小値 |
| 丸め(数値, 桁数) | 四捨五入 |
C拡張プラグイン(.hjp)
C言語等で書かれたネイティブプラグインを統一拡張子 .hjp(Hajimu Plugin)で読み込めます。Windows/macOS/Linux 共通で使用可能です。
プラグインの使用
// 拡張子なしでインポート(自動検索) 取り込む "math_plugin" として 数学P 表示(数学P["二乗"](5)) // → 25 表示(数学P["階乗"](6)) // → 720 // 拡張子を明示的に指定してもOK 取り込む "math_plugin.hjp" として 数学P
検索順序
| 優先度 | 検索場所 |
|---|---|
| 1 | 呼び出し元ファイルからの相対パス |
| 2 | カレントディレクトリ |
| 3 | hajimu_packages/ 内 |
| 4 | ~/.hajimu/plugins/(グローバル) |
メタ情報アクセス
取り込む "my_plugin" として P 表示(P["__名前__"]) // プラグイン名 表示(P["__バージョン__"]) // バージョン 表示(P["__作者__"]) // 作者 表示(P["__説明__"]) // 説明
パッケージ管理
内蔵パッケージマネージャで外部パッケージを管理できます。
コマンド一覧
| コマンド | 説明 |
|---|---|
hajimu パッケージ 初期化 | プロジェクトを初期化(hajimu.json作成) |
hajimu パッケージ 追加 <URL> | パッケージをインストール |
hajimu パッケージ 削除 <名前> | パッケージを削除 |
hajimu パッケージ 一覧 | インストール済み一覧 |
hajimu パッケージ インストール | 全依存をインストール |
パッケージの使用
// パッケージをインポート 取り込む "パッケージ名" として PKG // パッケージ内の関数を使用 PKG.関数名()
hajimu.json
{
"名前": "プロジェクト名",
"バージョン": "1.0.0",
"説明": "説明文",
"作者": "作者名",
"メイン": "main.jp",
"依存": {
"パッケージ名": "ユーザー名/リポジトリ名"
}
}