TechCraft – エンジニアのためのスキルアップメモ

エンジニアのスキルアップを少しでも加速する技術ブログ

LispでHelloworld

Lisp で Hello, World! を出力する方法

1. はじめに

Lisp(リスプ) は、1958年に開発されたプログラミング言語で、関数型プログラミングメタプログラミング の分野で強力な機能を持っています。
本記事では、LispHello, World! を出力する基本的な方法から、Lisp の特徴について詳しく解説します。


2. Lisp とは?

Lisp は、以下の特徴を持つ言語です。

Lisp にはいくつかの方言がありますが、代表的なものとして以下の 3 つがあります。

Lisp 方言 特徴
Common Lisp 実用性が高く、多くのライブラリがある
Scheme シンプルで教育用途によく使われる
Clojure JVM 上で動作し、関数型プログラミングに最適

本記事では Common Lisp を使用します。


3. Hello, World! の基本

Lisp では、printformat を使って文字列を出力できます。

方法1: print を使う

(print "Hello, World!")

実行結果

"Hello, World!"

print は文字列を出力しますが、改行され、ダブルクォート(")が含まれます。

方法2: format を使う(推奨)

(format t "Hello, World!~%")

実行結果

Hello, World!

ポイント - t は標準出力(*standard-output*)を意味します。 - ~% は改行コードです。


4. REPL(対話型環境)で実行

Lisp には REPL(Read-Eval-Print Loop) という対話型環境があり、インタラクティブにコードを実行できます。

Common Lisp の REPL を起動する

Linux/macOS では sbcl(Steel Bank Common Lisp)をインストールし、REPL を開きます。

sbcl

REPL が起動したら、format を使って Hello, World! を出力できます。

(format t "Hello, World!~%")

実行結果

Hello, World!

Windows では、CLISP などをインストールして同様に実行できます。


5. スクリプトとして実行

Lisp のコードを .lisp ファイルとして保存し、スクリプトとして実行できます。

1. ファイルを作成

hello.lisp というファイルを作成し、以下のコードを記述します。

(format t "Hello, World!~%")

2. コマンドラインで実行

sbcl --script hello.lisp

または、CLISP を使う場合:

clisp hello.lisp

6. 高度な出力方法

Lisp では、文字列の動的な生成や装飾を行うことも可能です。

6.1 変数を使う

(let ((message "Hello, Lisp!"))
  (format t "~A~%" message))

実行結果

Hello, Lisp!

6.2 複数の変数をフォーマット

(let ((name "Alice")
      (language "Lisp"))
  (format t "Hello, ~A! Welcome to ~A.~%" name language))

実行結果

Hello, Alice! Welcome to Lisp.

6.3 色付きの出力

ターミナルで色をつけて出力するには、ANSI エスケープシーケンスを使います。

(format t "~C[31mHello, Red!~C[0m~%" #\ESC #\ESC)

実行結果(赤色で出力)

Hello, Red!

7. まとめ

本記事では、Lisp で「Hello, World!」を出力する方法について詳しく解説しました。

ポイント

printformat を使って出力
✅ REPL(対話型環境)で実行可能
.lisp ファイルを作成してスクリプトとして実行
✅ 変数を使った動的な出力が可能
ANSI コードを使って色付きの出力もできる

次に学ぶべきこと

参考リンク - Common Lisp 公式ドキュメント - SBCL(Steel Bank Common Lisp) - CLISP(Common Lisp Interpreter)

Lisp は学習コストが高いものの、強力なメタプログラミング機能を備えており、関数型プログラミングや AI 開発に適した言語です。ぜひ実際に試してみてください!