1
명명 된 선택적 인수를 사용하여 함수를 정의하고 이러한 인수를 특정 머리를 가진 표현식으로 제한하고자합니다. 이름없는 선택적 인수를 사용하면이 작업을 쉽게 수행 할 수 있습니다. 예를 들어패턴 제약 조건과 옵션 패턴 결합
succ1[n_Integer: 0] := n + 1
succ1[]
succ1[4]
succ1[a]
원하는 출력으로서
1
5
succ1[a]
을 준다. 그러나, 나는 명명 된 인수와 같은을 달성하는 방법을 알아낼 수 없습니다 : 앞의 코드는 succ2[n -> a]
의 출력으로 1 + a
을 제공
Options[succ2] = {n -> 0}
succ2[OptionsPattern[]] := OptionValue[n] + 1
succ2[]
succ2[n -> 4]
succ2[n -> a]
. 내가 원하는 것은 선택 인수를 n -> _Integer
(Rule[n, _Integer]
)으로 제한하여 n -> a
이 평가되지 않도록 유지하는 것입니다. 그것을 할 방법이 있습니까? [N -> A]