Closed10

Hello, Gleam

d3d3

Gleam

brew update
brew install gleam

asdf (optional)

asdf plugin-add gleam
asdf list all gleam
output
...
1.2.0
1.2.0-rc1
1.2.0-rc2
1.2.1
nightly
asdf install gleam latest
gleam --version
output
gleam 1.2.1

workspace 用のバージョン

asdf local gleam latest
d3d3

Erlang

Gleamの実行に必要なので、Homebrewでインストールしている場合は一緒にインストールされている

erl -version
output
Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version 14.2.5
d3d3

rebar3

これも一緒にインストールされていた

rebar3 version
output
rebar 3.23.0 on Erlang/OTP 26 Erts 14.2.5
d3d3

Hello, world

プロジェクトの作成:

gleam new hello-gleam
output
error: Invalid project name

We were not able to create your project as `hello-gleam` does not have the
correct format. Project names must start with a lowercase letter and may
only contain lowercase letters, numbers and underscores.

Please try again with a different project name.

- は使えない

gleam new hello_gleam
cd hello_gleam/
asdf local gleam latest
d3d3
output
Your Gleam project hello_gleam has been successfully created.
The project can be compiled and tested by running these commands:

	cd hello_gleam
	gleam test

gleam test を実行と言われたので、無邪気に実行:

output
gleam test
  Resolving versions
Downloading packages
 Downloaded 2 packages in 0.12s
  Compiling gleam_stdlib
  Compiling gleeunit
  Compiling hello_gleam
   Compiled in 0.71s
    Running hello_gleam_test.main
.
Finished in 0.006 seconds
1 tests, 0 failures

ひとまずscafoldされた main 関数のテストが実行されたらしい

d3d3

実行するには:

gleam run
output
   Compiled in 0.01s
    Running hello_gleam.main
Hello from hello_gleam!
d3d3

JavaScript にコンパイルして実行する:

gleam run --target javascript
output
   Compiled in 0.01s
    Running hello_gleam.main
Hello from hello_gleam!
d3d3

実行ファイルにする

gleam add --dev gleescript

dev-depency として gleescriptをインストールする

https://hexdocs.pm/gleescript/

escript は Erlang のプログラムをコマンドラインで実行できるようにするものらしい。

gleam run -m gleescript
output
  Compiling argv
  Compiling gleam_stdlib
  Compiling filepath
  Compiling gleam_erlang
  Compiling simplifile
  Compiling snag
  Compiling tom
  Compiling gleescript
  Compiling gleeunit
  Compiling hello_gleam
   Compiled in 2.08s
    Running gleescript.main
  Generated ./hello_gleam

プロジェクトのルートにhello_gleamができる:

./hello_gleam
output
Hello from hello_gleam!
このスクラップは6ヶ月前にクローズされました