🎾

Education: Racket: Racketプログラムの基本

2023/03/20に公開

はじめに

Racket の"Hello World"プログラムをもとに、Racket の基本を学習します。

Racketでの"Hello World プログラム"

Racket での"Hello,World"プログラムを作成します。
拡張子は".rkt"なので、"helloworld.rkt"というファイルを作成して次のようにコードを作成します。

helloworld.rkt
#lang racket

(display "Hello, my first Racket")

このプログラムを実行すると、つぎのようになります。

output
[Running] racket helloworld.rkt
Hello, my first racket!
[Done] exited with code=0 in 0.517 seconds

Hello Worldプログラムとリスト

上記でしめした"Hello World"プログラムの本体は、3行目の(display "Hello, my first racket")です。
Racket は、処理を行なう関数とその引数を()でくくって表現します。この 1つながりのデータをリストとよびます。

リストは、データだけでもつくることができます。たとえば、さきほどの"Hello, my first racket"'は("Hello," "my first racket")`のようにできます。

リストを使った"Hello World"

引数にはリストを使うこともできます。この場合、プログラムと実行結果はつぎのようになります。

helloworld.rkt
#lang racket

(display ("Hello, my first Racket"))
output
[Running] racket helloworld.rkt
application: not a procedure;
 expected a procedure that can be applied to arguments
  given: "Hello,"
  context...:
   basics\hello\helloworld.rkt:3:0
   body of "basics\hello\helloworld.rkt"

[Done] exited with code=1 in 0.663 seconds

リストをそのまま渡すと、このようにエラーがでます。これはリストの最初の値である"Hello"を関数として評価するためです。
これを防ぐには、"`"をつけてリストそのものを引数として渡すようにします。

helloworld.rkt
#lang racket

(display '("Hello, my first Racket"))
output
[Running] racket helloworld.rkt
(Hello, my first racket!)
[Done] exited with code=0 in 0.648 seconds

このばあいは、上記のようにリストが表示されます。

GitHubで編集を提案

Discussion