名前付きのオプションの引数を持つ関数を定義し、それらの引数を特定のヘッドを持つ式に制限したいと考えています。これは、名前のないオプションの引数を使用して簡単に実行できます。例えば:
succ1[n_Integer: 0] := n + 1
succ1[]
succ1[4]
succ1[a]
与える
1
5
succ1[a]
目的の出力として。ただし、名前付き引数で同じことを達成する方法がわかりません。
Options[succ2] = {n -> 0}
succ2[OptionsPattern[]] := OptionValue[n] + 1
succ2[]
succ2[n -> 4]
succ2[n -> a]
前のコードは1 + a
の出力として与えますsucc2[n -> a]
。私が望むのは、オプションの引数をn -> _Integer
( Rule[n, _Integer]
) に制限して、評価されないn -> a
ままにすることです。それを行う方法はありますか?