2019年3月26日火曜日

Juliaで標準入出力

今朝の日経新聞に,全国統一プログラミング王決定戦本戦の記事が載っていた。新聞に示された例題を見るとそんなに難しそうではない。自分でもできそうなレベルだ。さっそくウェブサイトを訪れると,昨年のマストドンブームでお見かけしたC++の江添亮さんに影響されてC++を勉強するためにバーチャルに通った,会津大学のAOJオンラインプログラミングチャレンジと同じようなフレーバーのサイトだった。

さっそくJuliaで挑戦してみようとしたところ,C++とかPythonはありそうだが,そもそもJuliaなんて受け付けられないのではないか。それはそれとして,Juliaで標準入力をどうするのかは今まで考えてこなかった。この機会に調べてみよう。

(1) Jupyter環境の場合
なんのことはない,readline()とすると stdin> として標準入力が要求された。めでたしめでたし。

(2) REPL環境の場合
標準入力のプロンプトは自分で設定しないと出ないのだが,入力待ちの環境中で入力と改行を繰り返せばよいだけである。入力データの型はStringになっていた。例えばMacOSXの Julia REPL環境でプログラム開発ループを実現するには,まずbashのコマンドラインでJuliaを起動し,REPL環境が立ち上がれば,julia>プロンプトに対し,
  edit("/Users/xxxx/yyyy/test.jl")
  include("/Users/xxxx/yyyy/test.jl")
を繰り返して,編集とプログラムの読み込みを実行すればよかった。

ここで,ユーザxxxxの作業ディレクトリyyyyにJuliaのテストプログラム test.jl を置いたものと仮定している。editでは標準に設定されているエディタが起動した(ここがまだよくわかっていない)。したがって,これ以降はエディタで編集し,includeを繰り返えせばよい。

[注]Macにインストールしたjuliaは,/Applications/Julia-1.1.app/Contents/Resources/julia/bin/julia にあった。bashでパスを有効にするには,.bashrcにパスを記述して,.bash_profileにでbash起動時に.bashrcを読み込むようにする必要がある。
cat .bash_profile
if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi
cat .bashrc
export PATH=$PATH:/Applications/Julia-1.1.app/Contents/Resources/julia/bin

(3) コマンドライン環境の場合
この場合はもう少し勉強してコンパイルできるようになってから考えよう。

P. S. At Coder のプログラム言語,Juliaは隅の方にあったけど,0.5.0なのだった...orz

参考:Juliaで競技プログラミング(AtCoder)やるときのTips(Julia 0.5.0用)

0 件のコメント: