Erlang-Stil - Musterabgleich zwischen Fall und Funktion

Ich bin an dem Punkt angelangt, an dem ich jetzt einiges an Erlang-Code geschrieben habe, und ich kann sehen, wie sich ein Stil (schlecht oder gut) in die Art und Weise einschleicht, wie ich ihn geschrieben habe. Zu dieser bestimmten Redewendung möchte ich eine Meinung abgeben: Ist es besser (lesbarer / schneller / was auch immer), case style-Anweisungen in funktionale Musterübereinstimmung umzuwandeln?

Z.B.

Vergleichen (ein erfundenes Beispiel)

<code>case {Size > 100000, Type} of
    {true, ets } ->
         %% Do something to convert to dets
         something;
    {false, dets} ->
         %% do something to convert to ets
         somethingelse;
    _ ->
         ignoreit
end;
</code>

mit

<code>...
maybeChangeStorage(Size, Type)
...

maybeChangeStorage(Size, ets) when Size > 10000 ->
   something;
maybeChangeStorage(Size, dets) when Size < 10000 ->
   somethingelse;
maybeChangeStorage(_,_) ->
   ignoreit.
</code>

In den meisten Fällen bevorzuge ich Letzteres, aber ich würde mich für eine andere Meinung interessieren.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage