Simple Rock Paper Scissors in Erlang
In whole not bad, but something can be simplified.

1.
In short functions don't need to create separate variables, especially if it is just a wrapper over the call of inner function. So play game/1 from rps can be rewritten as:

play_game(InputFunctions) -&gt;
  play_game([{win, 0}, {loss, 0}, {tie, 0}], InputFunctions).


2.
Behavior of function for get result from player2 must not depend on result first player. Together with hint from 1 and giving an alias to the name of argument get

play_game(Score, {Player1Input, Player2Input} = P) -&gt;
  display_score(Score),
  case Player1Input() of
    quit -&gt; ok;
    Input -&gt; play_game(new_score(Input, Player2Input(), Score), P)
  end.


where Player2Input/0:

  GetCompInput = fun() -&gt;
    Input = rps:get_random_symbol(),
    io:format("Computer threw ~p~n", [Input]),
    Input
                 end,


new_score in my opinion, better captures the essence of the function than compare_results. This also allow delete first clause in new_score(compare_results)/3.

3.
Usage the symbol - in the name of the module is not very convenient,
 because you must wrap the name in ' ' when call function. Better use _ as delimiter.

4.
Not should use guard,when can use pattern matching. Compare

fun(Continue) when Continue =:= false -&gt;


and

fun(false) -&gt;


5.
Do not create an anonymous argument for a single function clause, in this case it is just an excess parameter.

 main(_) -&gt;


6.
Do not use the directive import since it can will only confuse. If you know 
C++, it is possible to draw an analogy with an indicate explicit namespace instead of using namespace.  

In addition I did not delete lines

play_game(ok, _) -&gt;
  ok;


and   

new_score(_, quit, _) -&gt;
  ok;


although when playing with the computer this function clause does not get called.