Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

F#: Mutually recursive functions [duplicate]

Possible Duplicate:
[F#] How to have two methods calling each other?

Hello all,

I Have a scenario where I have two functions that would benefit from being mutually recursive but I'm not really sure how to do this in F#

My scenario is not as simple as the following code, but I'd like to get something similar to compile:

let rec f x =
  if x>0 then
    g (x-1)
  else
    x

let rec g x =
  if x>0 then
    f (x-1)
  else
    x
like image 849
rysama Avatar asked Sep 01 '10 18:09

rysama


2 Answers

You can also use let rec ... and form:

let rec f x =
  if x>0 then
    g (x-1)
  else
    x

and g x =
  if x>0 then
    f (x-1)
  else
    x
like image 112
Stringer Avatar answered Nov 02 '22 20:11

Stringer


To get mutually recursive functions simply pass one to the other as a parameter

let rec f g x =
  if x>0 then
    g (x-1)
  else
    x

let rec g x =
  if x>0 then
    f g (x-1)
  else
    x
like image 2
JaredPar Avatar answered Nov 02 '22 21:11

JaredPar