整数 n を取り、整数 n* を返す関数を定義して、n と n* が 1 から n までの整数の同じセットに含まれるようにしたいと思います。関数は全単射でなければなりません。
私は次のことを試しました
fun bij(n) =
let
val ls = zip(upto (1, n), List.rev(upto (1, n)))
val Tw_2 = fn(a, b) => b
in Tw_2(List.last(ls, n-1)) end;
残念ながら、n のすべての値に対して 1 を返します。私は本当にここで立ち往生しています。これを実装する方法について誰かが私にいくつかのアイデアを教えてもらえますか?
の動作は次のbij
ようになります
bij(1) = 3
bij(2) = 2
bij(3) = 1