Picon

conses in erlang?

can i use conses in erlang?
like in scheme, then i only need one function. is the range func in erlang ood erlang-style or is there a better way to do it?

(define (seq a b)
    (if (< a b)
        (cons a (seq (+ a 1) b))
        '()))

-module(test).
-export([range/2]).
     
range(Start, End) when Start < End, is_integer(Start), is_integer(End) ->
    seq(Start, End, []).

seq(Start, End, List) ->
    if Start =< End ->
        seq(Start + 1, End, List ++ [Start]);
    true ->
    List
end.

Ta semester! - sök efter resor hos Kelkoo.
Jämför pris på flygbiljetter och hotellrum: http://www.kelkoo.se/c-169901-resor-biljetter.html
<div>
<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="top">can i use conses in erlang?<br>like in scheme, then i only need one function. is the range func in erlang ood erlang-style or is there a better way to do it?<br><br>(define (seq a b)<br>&nbsp;&nbsp;&nbsp; (if (&lt; a b)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (cons a (seq (+ a 1) b))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '()))<br><br>-module(test).<br>-export([range/2]).<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>range(Start, End) when Start &lt; End, is_integer(Start), is_integer(End) -&gt; <br>&nbsp;&nbsp;&nbsp; seq(Start, End, []).<br><br>seq(Start, End, List) -&gt;<br>&nbsp;&nbsp;&nbsp; if Start =&lt; End -&gt;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; seq(Start + 1, End, List ++ [Start]);<br>&nbsp;&nbsp;&nbsp; true -&gt;<br>&nbsp;&nbsp;&nbsp; List<br>end.<br>
</td></tr></table>
<br><table><tr><td>Ta semester! - s&ouml;k efter resor hos Kelkoo. <br>J&auml;mf&ouml;r pris p&aring; flygbiljetter och hotellrum: <a href="http://www.kelkoo.se/c-169901-resor-biljetter.html?partnerId=96914051">http://www.kelkoo.se/c-169901-resor-biljetter.html</a>
</td></tr></table>
</div>

Gmane