List Info

Thread: "ocaml_beginners"::[] Re: what is this control structure called?




"ocaml_beginners"::[] Re: what is this control structure called?
country flaguser name
Norway
2008-03-03 22:23:34

"ERIC LAVIGNE&QUOT; < LAVIGNE.ERIC%40GMAIL.COM">LAVIGNE.ERICGMAIL.COM> WRITES:

>> SUPPOSE I HAVE A FUNCTION THAT RETURNS AN OPTION TYPE. I WANT TO
>&GT; APPLY F TO EACH ITEM IN A LIST UNTIL I FIND A NON-NONE RESULT, THEN
>;> RETURN THAT UNDERLYING VALUE. THE CODE IS SIMPLE:
>>
>> LET REC FIND_SOME F = FUNCTION
>> | X :: REST -> (MATCH F X WITH SOME Y -> Y | NONE -> FIND_SOME F REST)
&GT;> | [] -> RAISE NOT_FOUND
>
&GT; THE FOLLOWING IMPLEMENTATION IS TAIL-RECURSIVE.

THE ABOVE IMPLEMENTATION WAS TAIL-RECURSIVE TOO.

[...]
>; LET REC FIND_FIRST F = FUNCTION
> | X :: REST -> (MATCH F X WITH SOME Y -> SOME Y | NONE -> FIND_SOME F REST)
&GT; | [] -> NONE
>;
--
RéMI VANICAT

__._,_.___
.

__,_._,___
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )