• DownValues, UpValues, SubValues, 和OwnValues之间的区别?


    原链接:在这里

    -------------------------------------------------------------------------------------------------

    首先我们要知道,在Mma中,所有的功能其实都是各种各样的模式(patterns)的体现而已.

    让我们从 OwnValues开始, 这种模式类型就是你在其他编程语言里学到的所谓"变量". 正如它字面上的意思所表示的:一个符号的OwnValues就是这个符号本身所代表的值.

     In[1] := a = 2; OwnValues[a]
    Out[1] := {HoldPattern[a] :> 2}

    在绝大部分情况下, 当一个符号被定义为函数的时候, 我们就不知不觉用到了DownValue. 此时, 这个符号本身没有任何意义除非在后面跟上合适的参数.

    f[x_] := x^2

    上面的式子定义了一个模式---每当形如f[blala]的表达式出现时就将其替换为blala^2. 仅仅有一个f是毫无意义的.

     In[2] := f
    Out[2] := f

    然而, 每当遇到一个下行值(就是表达式结构的下一层的值,比如在f[b]中,b就在f的下一层),模式就被应用了:

     In[3] := f[b]
    Out[3] := b^2

    可以用下面的方法查看上面生成的模式:

     In[4] := DownValues[f]
    Out[4] := {HoldPattern[f[x_]] :> x^2}

    下面来说UpValues.有时,把规格和外层的符号联系起来是很方便的.例如,定义一个符号c:当这个符号的下标是1时它的值为2.这个规则可以用如下代码定义:

    c /: Subscript[c, 1] := 2
     In[5] := UpValues[c]
    Out[5] := {HoldPattern[Subscript[c, 1]] :> 2}

    最后是SubValues,用于下面这种类型的定义:

    d[e][f] = x;
     In[6] := SubValues[d]
    Out[6] := {HoldPattern[d[e][f]] :> x}

    (这个不重要,请忽略吧)

  • 相关阅读:
    ftp服务器架设
    samba服务器架设
    apache安装
    yum及prm安装
    redis安装与使用
    memcached安装与使用
    mysql主从服务器
    nginx负载均衡服务器搭建
    lnmp环境搭建
    linux笔记
  • 原文地址:https://www.cnblogs.com/mymma/p/2731269.html
Copyright © 2020-2023  润新知