関数をまとめるdefmoduleの名前は先頭大文字でないとエラーになりました。
再帰で終了させるのに空の別関数を作成しています。
8行目[n|tl]は受け取った配列の先頭をn、それ以外をtlという配列に分ける技のようです。
12行目のboard_write(s,[])とすると画面↓上のwarningが発生。使っていない変数は
_にしたところ解決。
テキスト
defmodule Ot do
def leng(x1,y1,x2,y2) do
:math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))
end
def put(s,p,c) do
(String.slice s,0,p) <> c <> (String.slice s,p+1,(String.length(s)))
end
def board_write(s,[n|tl]) do
IO.puts String.slice s,n*10+11,8
board_write(s,tl)
end
def board_write(_,[]) do
# noop
end
end
s="###########abcdefgh##........##........##........##........##........##........##12345678###########"
Ot.board_write(s,[0,1,2,3,4,5,6,7])