この記事は 『Hello World あたたたた Advent Calendar 2025』の記事です。
この記事では、AppleScriptで 『Hello World あたたたた』 を実装しています。
『Hello World あたたたた』については ↓こちらをご覧ください。
AppleScriptとは
AppleScriptは、Appleが開発したスクリプト言語です。ユーザーは、スクリプト対応のMacintoshアプリケーションだけでなく、macOS自体の一部を直接制御できます。スクリプト(記述された命令セット)を作成することで、反復的なタスクを自動化したり、複数のスクリプト対応アプリケーションの機能を組み合わせたり、複雑なワークフローを作成したりできます。
おそらく、macOSでのみ動作します。
コーディング例
set aorta to {"あ", "た"} -- "あ"と"た"のリスト
set hako to "" -- 出力した文字を溜めていく文字列変数
repeat until hako contains "あたたたた" -- "あたたたた"になるまで繰り返す
set char to some item of aorta -- "あ"か"た"をランダムに選択
set hako to hako & char -- 出力した文字を hako に追加
end repeat
-- hakoを出力
log hako & "\n" & "お前はもう死んでいる"
コードと文法の解説
変数の宣言・代入
-
リストと文字列の2つの変数を宣言します
set aorta to {"あ", "た"} -- "あ"と"た"のリスト set hako to "" -- 出力した文字を溜めていく文字列変数
繰り返し
-
今回は
repeat-untilを使いました。式が真になるまで(偽の間)繰り返しますrepeat until 式 -- 繰り返し処理 end repeat
文字列の末尾判定
-
文字列の末尾を判定したいのですが、判定文字列が途中に来ることはあり得ないので、単に判定文字列が
含まれているかを判定するだけでよいです。
もし含むなら ループを終了しますrepeat until ( hako contains "あたたたた" ) -- "あたたたた"になるまで繰り返す -- 繰り返し処理 end repeat
文字の選択と文字列の連結
-
リストにすることで、リスト内の項目をランダムに選択できます
set char to some item of aorta -- "あ"か"た"をランダムに選択
-
文字列の連結には
&を使いますset hako to hako & char -- 出力した文字を hako に追加
文字の出力
-
log で出力します
AppleScriptにはprintのような出力命令がないため、ダイアログに表示しますlog hako & "\n" & "お前はもう死んでいる"with text buttons { }でダイアログに表示するボタングループを指定し、default button Xでデフォルトボタンを指定します。with title "TITLE"を付加すれば、ダイアログにタイトルをつけることもできます。
実行例
-
次のコマンドをコピペして ターミナルで実行
osascript -e ' set aorta to {"あ", "た"} set hako to "" repeat until hako contains "あたたたた" set char to some item of aorta set hako to hako & char end repeat log hako & "\n" & "お前はもう死んでいる" '
個人的なコメント
ほとんどだいたいの言語で実装されていて、自分に他のどの言語なら書けるのか考えた結果、今回のAppleScriptとなりました。
もう数日残されているので、もう一つぐらい書けないか考えています。
以上
