0
我有兩個功能:如何遞歸調用2個函數?
let fn2 =
if "something happend" then
fn1
let rec fn1 =
if "something" then
fn2
這只是一個例子,我想做的事情。有沒有任何想法如何做到這一點?
或者我應該只發送2.函數作爲參數的1.函數?
我有兩個功能:如何遞歸調用2個函數?
let fn2 =
if "something happend" then
fn1
let rec fn1 =
if "something" then
fn2
這只是一個例子,我想做的事情。有沒有任何想法如何做到這一點?
或者我應該只發送2.函數作爲參數的1.函數?
您需要使用let rec ... and ...
:
let rec fn1 x =
if x = "something" then
fn2 x
and fn2 x =
if x = "something else" then
fn1 x
您也可以嵌套包裝的功能並創建兩個高階函數中接受一個函數作爲參數,並將其應用。
這可能比不上。像:
let fn2 fn =
if "something happend" then
fn fn2
let rec fn1 fn =
if "something" then
fn fn1
你可以叫比調用你的函數是這樣的:
let result = fn1 fn2
如果你希望你的功能更明確的可以寫出來,例如像:
let rec fn2 (fn:unit->unit) : unit =
if "something happend" then
fn fn2
let rec fn1 (fn:unit->unit) : unit =
if "something" then
fn fn1
但我認爲kvb的回答是他們更好的方式,因爲它更符合標準和可讀性。
哇我不知道,謝謝kvb – Racooon