Input loop is part of Short Circuit's Console Program Basics selection.
Task

Read from a text stream either word-by-word or line-by-line until the stream runs out of data.

The stream will have an unknown amount of data on it.




defmodule RC do
  def input_loop(stream) do
    case IO.read(stream, :line) do
      :eof -> :ok
      data -> IO.write data
              input_loop(stream)
    end
  end
end
 
path = hd(System.argv)
File.open!(path, [:read], fn stream -> RC.input_loop(stream) end)