ハローワールド!
これがredy言語で書いたHello Worldプログラムです。main.ry
にコピペしてみてください
fn main() {
println#("redyからハローワールド!")
}
このプログラムを実行するには、まず"コンパイル"する必要があります。以下に示したコマンドを実行して、./out/
ディレクトリ内に実行可能ファイルが生成されることを確認してください
redy main.ry
# Compiling... : main.ry
# Compiled! : main.ry
正しく生成されたら、それを実行してみましょう
./out/main
# redyからハローワールド!
"redyからハローワールド!"という文字列が標準出力に表示されれば成功です
ハローワールドの中身
先ほどの非常に単純なハローワールドプログラムを1行ずつ見て理解してみましょう
fn main() {
この最初の行は、これからmain
という名前の関数
(function/fn
)がありますよという宣言で、その後にすぐさま波括弧の始まり{
が来ているので、この波括弧の内側にmain
関数の中身を定義しますよということを示しています。
ここで関数
は特にプログラミングの分野では、処理の塊として捉えたほうが分かりやすいと思います
数学の関数と同じで何かを引数として受け取ったらその値に応じて何かを返す、という働きをする箱のようなものですが、プログラミングにおいてはその戻り値を求める過程で何らかの副作用(標準出力に表示とか、ファイルに書き込みとか、などなど)を起こす関数であったり、そもそも値を返さない関数もあったりするので、もはや数学の関数とは似ても似つかない物も多くあります
関数
とはそういう物だと認識しておいてください
println#("redyからハローワールド!")
次の行も至ってシンプルで、println#()
という関数*を"redyからハローワールド!"
という引数をつけて呼ぶ、という意味です。println#()
は標準で組み込まれている関数で、printlnという名前はprint line
の略から来ています。その名の通り、与えられた文字列を標準出力に表示するもので、最後に改行コードも出力します
ダブルクオーテーション("
)で囲まれている文字列はリテラル文字列
という、一度に扱うことができる文字の集合として認識されます
ここではprintln#()
を関数として紹介しましたが、厳密には関数ではありません。真に驚くべきその理由を説明するにはこの余白は狭すぎるので、あとで触れます。関数と同じように扱えるものなので今は関数として認識しておいてください
}
最後の行は一番シンプルで、1行目に書いた波括弧の始まり{
に対応する波括弧の終わりです。これは、ここでこの関数の中身の定義を終わりますよという意味になります
そして、ここでプログラムは終わりなので、今見てきた3行で最低限動くプログラムが作れたというわけです