(2) 阅读 (1165)

直接函数 编辑

词条创建者 匿名用户

什么是直接函数

编辑

直接函数(dfn,发音为deefun)是编程语言APL中定义函数和运算符(高阶函数)的一种替代方式。直接运算符也可以被称为dop(发音为deeop)。它们是由JohnScholes在1996年发明的。它们是数组编程、高阶函数和函数式编程的独特组合,是21世纪初APL相对于以前版本的一个主要区别性进步。dfn是在{和}之间的一串可能有防护的表达式(或者只是一个防护),用⋄或new-line隔开,其中⍺表示左参数,⍵表示右参数,∇表示递归(函数自引用)。例如,函数PT测试⍵的每一行是否是毕达哥拉斯式三段论(通过测试平方之和是否等于xxx值的两倍)。说明dfns的规则由以下参考卡总结。dfn是在{和}之间的一串可能有保护的表达式(或者只是一个保护),用⋄或新行分隔。expressionguard:表达式守护。表达式和/或护卫依次被评估。一个卫兵必须评估为0或1;如果其相关的表达式的值为1,则对其进行评估。一个dfn在xxx个不以赋值结束的未卫兵表达式之后,或者在xxx个卫兵表达式的卫兵评估为1之后,或者没有更多的表达式之后终止。dfn的结果是最后一个被评估的表达式的结果。如果最后一个被评估的表达式以赋值结束,那么其结果将不会自动显示在会话中。在dfn中分配的名字默认是本地的,具有词法范围。⍺表示左边的函数参数,⍵表示右边;⍺⍺表示左边的操作数,⍵⍵表示右边。如果定义中出现了⍵⍵,那么dfn就是一个二元运算符;如果只出现了⍺⍺而没有出现⍵,那么它就是一个单元运算符;如果⍺⍺和⍵都没有出现,那么dfn就是一个函数。如果dfn被单调地调用,即调用时没有左参数,那么特殊语法⍺←表达式被用来给左参数一个默认值。

直接函数

否则,⍺←表达式不会被评估。∇表示递归或函数的自引用,∇表示运算符的自引用。这样的表示法允许匿名递归。错误捕获是通过错误保护器(errnums::expression)提供的。当一个错误产生时,系统通过调用函数动态地搜索与该错误相匹配的错误保护。如果找到了,执行环境就会被解开到错误保护执行前的状态,并且错误保护的相关表达式被评估为dfn的结果。关于dfns的其他描述、解释和教程可在引用的文章中找到。

直接函数的例子

编辑

这里的例子说明了dfns的不同方面。其他的例子可以在引用的文章中找到。默认的左边参数函数{⍺+0j1×⍵}将⍺添加到0j1(i或复数可以被构造为实数的有序对,类似于整数可以被构造为自然数的有序对,有理数可以被构造为整数的有序对。对于复数,{⍺+0j1×⍵}的作用与整数的-和有理数的÷相同。此外,类似于单体-⍵⇔0-⍵(否定)和单体÷⍵⇔1÷⍵(倒数),函数的单体定义是有用的,通过为⍺指定一个默认值0来实现。如果j←{⍺←0⋄⍺+0j1×⍵},则j⍵⇔0j⍵⇔0+0j1×⍵。


内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/164246/

发表评论

登录后才能评论

词条目录
  1. 什么是直接函数
  2. 直接函数的例子

轻触这里

关闭目录

目录