コード例

Hello World

表示("こんにちは、世界!")

計算

// 四則演算
変数 a = 10
変数 b = 3

表示(a + b)  // → 13
表示(a - b)  // → 7
表示(a * b)  // → 30
表示(a / b)  // → 3
表示(a ^ 2)  // → 100

// 三角形の面積
変数 底辺 = 8
変数 高さ = 5
変数 面積 = 底辺 * 高さ / 2
表示("面積: " + 文字列化(面積))

FizzBuzz

繰り返す i から 1 まで 100:
    もし i % 15 == 0 なら
        表示("FizzBuzz")
    それ以外 もし i % 3 == 0 なら
        表示("Fizz")
    それ以外 もし i % 5 == 0 なら
        表示("Buzz")
    それ以外
        表示(i)
    終わり
終わり

配列操作

// 配列の作成
変数 配列 = [1, 2, 3, 4, 5]

// 配列の変換(リスト内包表記)
変数 二乗 = [n * n を n から 配列]
表示(二乗)  // → [1, 4, 9, 16, 25]

// フィルタリング
変数 偶数 = [n を n から 配列 もし n % 2 == 0]
表示(偶数)  // → [2, 4]

// ソート
変数 ソート済み = ソート([5, 2, 8, 1, 9])
表示(ソート済み)  // → [1, 2, 5, 8, 9]

// 逆順
変数 逆 = 逆順([1, 2, 3, 4, 5])
表示(逆)  // → [5, 4, 3, 2, 1]

// 合計
変数 合計 = 0
各 n を 配列 の中:
    合計 = 合計 + n
終わり
表示(合計)  // → 15

関数の定義と利用

// フィボナッチ数列
関数 フィボナッチ(n):
    もし n <= 1 なら
        戻す n
    終わり
    戻す フィボナッチ(n - 1) + フィボナッチ(n - 2)
終わり

表示(フィボナッチ(10))  // → 55

// 階乗
関数 階乗(n):
    もし n <= 1 なら
        戻す 1
    終わり
    戻す n * 階乗(n - 1)
終わり

表示(階乗(5))  // → 120

// 素数判定
関数 素数判定(n):
    もし n < 2 なら
        戻す 偽
    終わり
    繰り返す i から 2 まで 整数根(n) + 1:
        もし n % i == 0 なら
            戻す 偽
        終わり
    終わり
    戻す 真
終わり

表示(素数判定(17))  // → 真

クラスとオブジェクト

クラス 銀行口座:
    関数 初期化(名義, 初期残高):
        自分.名義 = 名義
        自分.残高 = 初期残高
    終わり
    
    関数 入金(額):
        自分.残高 = 自分.残高 + 額
        表示(自分.名義 + "に" + 文字列化(額) + "円入金されました")
    終わり
    
    関数 出金(額):
        もし 自分.残高 >= 額 なら
            自分.残高 = 自分.残高 - 額
            表示(自分.名義 + "から" + 文字列化(額) + "円出金されました")
        それ以外
            表示("残高不足です")
        終わり
    終わり
    
    関数 残高表示():
        表示(自分.名義 + "の残高: " + 文字列化(自分.残高) + "円")
    終わり
終わり

// 使用例
変数 太郎口座 = 新規 銀行口座("太郎", 100000)
太郎口座.残高表示()  // 太郎の残高: 100000円
太郎口座.入金(50000)  // 太郎に50000円入金されました
太郎口座.出金(30000)  // 太郎から30000円出金されました
太郎口座.残高表示()  // 太郎の残高: 120000円

辞書操作

// ユーザー情報
変数 ユーザー = {
    "名前": "田中太郎",
    "年齢": 30,
    "職業": "エンジニア",
    "地域": "東京"
}

// アクセス
表示(ユーザー["名前"])   // → 田中太郎
表示(ユーザー["年齢"])   // → 30

// キーと値の列挙
各 キー を キー(ユーザー) の中:
    表示(キー + ": " + 文字列化(ユーザー[キー]))
終わり

// 複数ユーザー
変数 ユーザーリスト = [
    {"名前": "田中", "年齢": 30},
    {"名前": "佐藤", "年齢": 25},
    {"名前": "鈴木", "年齢": 35}
]

各 u を ユーザーリスト の中:
    表示(u["名前"] + ": " + 文字列化(u["年齢"]) + "歳")
終わり

文字列操作

// 基本操作
変数 文字列 = "プログラミング"

表示(長さ(文字列))  // → 7
表示(部分文字列(文字列, 0, 4))  // → プログラ
表示(大文字("hello"))  // → HELLO
表示(小文字("HELLO"))  // → hello

// 分割と結合
変数 文 = "りんご,みかん,ぶどう"
変数 果物 = 分割(文, ",")
表示(果物)  // → ["りんご", "みかん", "ぶどう"]

変数 結合済み = 結合(["a", "b", "c"], "-")
表示(結合済み)  // → a-b-c

// 置換
変数 元の文字列 = "こんにちは、世界"
変数 新しい文字列 = 置換(元の文字列, "世界", "宇宙")
表示(新しい文字列)  // → こんにちは、宇宙

// 検索
表示(始まる("Hello World", "Hello"))  // → 真
表示(終わる("Hello World", "World"))  // → 真

ユーザー入力

表示("あなたの名前は?")
変数 名前 = 入力()
表示("あなたの年齢は?")
変数 年齢 = 入力()

表示(名前 + "さんは" + 年齢 + "歳ですね")

// 数値に変換
表示("2つの数字を入力してください")
表示("1番目: ")
変数 a = 数値化(入力())
表示("2番目: ")
変数 b = 数値化(入力())
表示("合計: " + 文字列化(a + b))

高階関数とラムダ式

// 配列の変換
変数 配列 = [1, 2, 3, 4, 5]
変数 二乗 = 変換(配列, 関数(n): 戻す n * n 終わり)
表示(二乗)  // → [1, 4, 9, 16, 25]

// フィルタリング
変数 偶数 = 抽出(配列, 関数(n): 戻す n % 2 == 0 終わり)
表示(偶数)  // → [2, 4]

// 合計計算
変数 合計 = 折り畳み(配列, 0, 関数(acc, n): 戻す acc + n 終わり)
表示(合計)  // → 15

// 条件チェック
表示(全て(配列, 関数(n): 戻す n > 0 終わり))  // → 真
表示(一つでも(配列, 関数(n): 戻す n > 10 終わり))  // → 偽

その他の便利な例

パスワード検証

関数 パスワード検証(パスワード):
    変数 長さ_OK = 長さ(パスワード) >= 8
    変数 大文字_OK = 偽
    変数 数字_OK = 偽
    
    各 c を パスワード の中:
        もし 文字コード(c) >= 65 かつ 文字コード(c) <= 90 なら
            大文字_OK = 真
        終わり
    終わり
    
    各 c を パスワード の中:
        もし 文字コード(c) >= 48 かつ 文字コード(c) <= 57 なら
            数字_OK = 真
        終わり
    終わり
    
    戻す 長さ_OK かつ 大文字_OK かつ 数字_OK
終わり

もし パスワード検証("Abc12345") なら
    表示("強力なパスワードです")
それ以外
    表示("弱いパスワードです")
終わり

温度変換

関数 摂氏から華氏(摂氏):
    戻す 摂氏 * 9 / 5 + 32
終わり

関数 華氏から摂氏(華氏):
    戻す (華氏 - 32) * 5 / 9
終わり

表示(摂氏から華氏(0))    // → 32
表示(摂氏から華氏(100))  // → 212
表示(華氏から摂氏(32))   // → 0

さらに学ぶ

🚀 実践プロジェクト例

はじむは教育用だけでなく、実際のプロジェクトでも活用できます。以下は実用的なユースケースです。

Webスクレイピング

// ニュースサイトから記事タイトルを取得
非同期 関数 ニュース取得(URL):
    試す
        変数 応答 = 待つ HTTP取得(URL)
        変数 HTML = 応答.本文
        
        // 簡易的なHTMLパージング
        変数 タイトル一覧 = []
        変数 行一覧 = 分割(HTML, "\n")
        
        各 行 を 行一覧 から
            もし "<h2>" が含まれる 行 なら
                変数 開始 = 検索(行, "<h2>") + 4
                変数 終了 = 検索(行, "</h2>")
                もし 終了 > 開始 なら
                    変数 タイトル = 部分文字列(行, 開始, 終了 - 開始)
                    追加(タイトル一覧, タイトル)
                終わり
            終わり
        終わり
        
        戻す タイトル一覧
    捕捉 エラー:
        表示("エラー:", エラー)
        戻す []
    終わり
終わり

データ分析ツール

// CSVファイルを読み込んで統計情報を表示
関数 CSV読み込み(ファイル名):
    変数 内容 = ファイル読込(ファイル名)
    変数 行一覧 = 分割(内容, "\n")
    変数 データ = []
    
    各 行 を 行一覧 から
        もし 長さ(行) > 0 なら
            変数 値 = 分割(行, ",")
            追加(データ, 値)
        終わり
    終わり
    
    戻す データ
終わり

関数 統計計算(数値配列):
    変数 合計値 = 合計(数値配列)
    変数 平均値 = 合計値 / 長さ(数値配列)
    変数 最大値 = 最大(数値配列)
    変数 最小値 = 最小(数値配列)
    
    戻す {
        "合計": 合計値,
        "平均": 平均値,
        "最大": 最大値,
        "最小": 最小値
    }
終わり

// メイン処理
変数 データ = CSV読み込み("sales_data.csv")
変数 ヘッダー = データ[0]
変数 数値データ = [小数化(行[1]) を 行 から 部分配列(データ, 1, 長さ(データ))]

変数 統計 = 統計計算(数値データ)

表示("売上データ分析")
表示("================")
表示("合計:", 統計["合計"])
表示("平均:", 統計["平均"])
表示("最大:", 統計["最大"])
表示("最小:", 統計["最小"])

簡易APIサーバー(コンセプト)

// ユーザー情報を管理するREST API
クラス ユーザーマネージャー:
    初期化():
        自分.ユーザー = {}
        自分.次のID = 1
    終わり
    
    ユーザー作成(自分, 名前, メール):
        変数 ID = 自分.次のID
        自分.ユーザー[ID] = {
            "id": ID,
            "名前": 名前,
            "メール": メール
        }
        自分.次のID = 自分.次のID + 1
        戻す 自分.ユーザー[ID]
    終わり
    
    ユーザー取得(自分, ID):
        もし ID が含まれる 自分.ユーザー なら
            戻す 自分.ユーザー[ID]
        終わり
        戻す 空
    終わり
    
    全ユーザー取得(自分):
        戻す 値一覧(自分.ユーザー)
    終わり
終わり

// 使用例
変数 マネージャー = 新しい ユーザーマネージャー()

変数 user1 = マネージャー.ユーザー作成("太郎", "taro@example.com")
変数 user2 = マネージャー.ユーザー作成("花子", "hanako@example.com")
表示("作成:", user1, user2)

変数 全ユーザー = マネージャー.全ユーザー取得()
表示("全ユーザー:", 全ユーザー)

ファイルバックアップツール

// 指定ディレクトリのファイルをバックアップ
関数 バックアップ(ソース, 先):
    表示("バックアップ開始:", ソース, "->", 先)
    
    変数 成功 = 0
    変数 失敗 = 0
    
    試す
        変数 ファイル = ["file1.txt", "file2.txt", "data.json"]
        
        各 ファイル名 を ファイル から
            試す
                変数 ソースパス = ソース + "/" + ファイル名
                変数 先パス = 先 + "/" + ファイル名
                
                変数 内容 = ファイル読込(ソースパス)
                ファイル書込(先パス, 内容)
                
                表示("  ✓", ファイル名, "をコピー")
                成功 = 成功 + 1
            捕捉 エラー:
                表示("  ✗ エラー:", ファイル名, "-", エラー)
                失敗 = 失敗 + 1
            終わり
        終わり
        
        表示("\nバックアップ完了")
        表示("成功:", 成功, "件")
        表示("失敗:", 失敗, "件")
        
        戻す {"成功": 成功, "失敗": 失敗}
    捕捉 エラー:
        表示("致命的エラー:", エラー)
        戻す 空
    終わり
終わり

// 実行
変数 結果 = バックアップ("./documents", "./backup")