2

int*int を返すプログラムがあります

(説明のための例): fun program(a,b) = (1,2)

私は線に沿って何かをしたい:

fun program(a,b)
if a = 0 then (1,2)
else
val x,y = program(a-1,b)
return (x-1, y)

基本的には、返されたタプルを操作してから、その変更を返したいと考えています。

ありがとう

4

2 に答える 2

1

これは、構文が少しずれていることを除いて、書いたとおりにほぼ正確に機能します。

fun program(a,b) =
  if a = 0 then (1,2)
  else
    let val (x,y) = program(a-1,b) in
      (x-1, y)
    end

具体的には:

  1. 関数はfun f args = body- によって定義されます=
  2. 変数は でバインドされ let val foo = bar in baz endます。
  3. sml には return キーワードはありません。
于 2010-09-17T04:21:27.530 に答える