Io言語をインストールしてHello Worldする
はじめに
ビルドとインストールの方法も載せます。
単純にHello Worldしたら1行で終わってつまらないので、Hello World用のメソッドを持たせたオブジェクトのインスタンスを作って実行します。
インストール方法
ダウンロードする
--recursiveオプションを忘れずに。
$ git clone --recursive https://github.com/IoLanguage/io.git
ビルドする
$ cd io
$ mkdir build
$ cd build
$ cmake ..
$ make
インストールする
$ sudo make install
以下のコマンドが動けば成功です。
$ io --version
Io Programming Language, v. 20170906
Hello Worldする
-
ioと入力してインタプリタを起動します。
$ io
Io 20170906
Io>
-
空のオブジェクト、FirstObjectを作る
Io> FirstObject := Object clone
==> FirstObject_0x55eaf4b78e30:
type = "FirstObject"
-
FirstObjectにHello World用のメソッド、firstMethodを持たせる
Io> FirstObject firstMethod := method("Hello, world!" println)
==> method(
"Hello, world!" println
)
-
FirstObjectのインスタンス、firstInstanceを作る
Io> firstInstance := FirstObject clone
==> FirstObject_0x55eaf4eb3d30:
-
firstInstanceのfirstMethodを呼び出す
Io> firstInstance firstMethod
Hello, world!
==> Hello, world!
ioと入力してインタプリタを起動します。
$ io
Io 20170906
Io>
空のオブジェクト、FirstObjectを作る
Io> FirstObject := Object clone
==> FirstObject_0x55eaf4b78e30:
type = "FirstObject"
FirstObjectにHello World用のメソッド、firstMethodを持たせる
Io> FirstObject firstMethod := method("Hello, world!" println)
==> method(
"Hello, world!" println
)
FirstObjectのインスタンス、firstInstanceを作る
Io> firstInstance := FirstObject clone
==> FirstObject_0x55eaf4eb3d30:
firstInstanceのfirstMethodを呼び出す
Io> firstInstance firstMethod
Hello, world!
==> Hello, world!
Hello Worldできました!
おまけ
名前を受け取って挨拶してくれるメソッド、secondMethodを作ってみます。
-
firstInstanceにsecondMethodを持たせる
Io> firstInstance secondMethod := method(name, writeln("Hello, ", name)) ==> method(name, writeln("Hello, ", name) )
firstMethodのときは元となるオブジェクトに持たせてインスタンスを生成しましたが、今回はインスタンスに直接持たせています。
-
secondMethodを呼び出す
Io> firstInstance secondMethod("matoruru") Hello, matoruru ==> nil
挨拶された!
まとめ
QiitaにIo言語の構文ハイライトがあることに驚きました...(PureScriptのも用意してください!)。
参考
Author And Source
この問題について(Io言語をインストールしてHello Worldする), 我々は、より多くの情報をここで見つけました https://qiita.com/matoruru/items/63f5ff03d59f570d6972著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .