リファレンスマニュアル

基本構文

コメント

// 単一行コメント
/* 複数行
   コメント */

変数宣言

変数 名前 = "田中"
変数 年齢 = 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カレントディレクトリ
3hajimu_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",
  "依存": {
    "パッケージ名": "ユーザー名/リポジトリ名"
  }
}