OptionsPattern与复合左侧的规则不匹配

2021-02-12 22:07

OptionsPattern是在Mathematica v6中引入的,因此我最终决定试一试程序:Clear@foo;foo[options:OptionsPattern[]]:={options}foo[k2-gt;3]输出:{k2-gt;3]

解答动态

  • 整个问题基于一个错误的前提,即旧式的选择仅仅是武断的规则。事实并非如此,在过去,特殊OptionQ谓词用于区分选项和一般规则。
    通过正确的选项测试,您的示例将看起来比如:
    Clear@foo;foo[选项\uuuu规则]?OptionQ]:={options}foo[k2-gt;3] 它给出与OptionsPattern[]方法相同的输出。

    • 使用OptionsPattern[]时,k2时的期权价值应该也能用,所以在幕后有点像E
      K2/:OptionValue@k2=3 哪个如果k2被f1替换,则失败[k2]:您也会得到一个quot;error.
      因此新系统的语法更简单,但通用性较差。

      • End

      免责声明:

      本页内容仅代表作者本人意见,若因此产生任何纠纷由作者本人负责,概与琴岛网公司无关。本页内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。