1
我想用命名可選參數定義函數,並將這些參數限制爲具有特定標題的表達式。這很容易處理未命名的可選參數。例如:將模式約束與選項模式相結合
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]
),以便保持未評估狀態。有什麼辦法可以做到嗎?