三九宝宝网宝宝教育教学论文

什么是APL语言?拜托各位了 3Q

02月13日 编辑 39baobao.com

[C语言正整数输出]#includevoid Fun_A(int i) // Fun_A求整数个数的函数 { int k = printf("%d",i); printf("的个数是%d.\n",k); } void Fun_B(int i) // Fun_B打印整数每一位的函数 { int k = i /...+阅读

APL是A Programming Language或Array Processing Language的缩写。肯尼斯·艾佛森1962年设计这个语言时他正在哈佛大学工作。为此他1979年获得图灵奖。在过去数十年的使用历史中,APL从它的原始版本开始不断改变和发展,今天的版本与1963年发表时的版本已经非常不一样了。但它始终是一种解释执行的计算机语言。现代的APL版本都支持其初试版本不支持的结构和模式编程。

APL至今依然使用一种非标准化的字母表,这一点一直是他人对它的批评点。 概述 在许多应用场合下(数学、科学、工程技术、电脑设计、机器人、数据显示、保险技术、传统的数据处理等等)APL是一种非常有力的、表达丰富的和简明的编程语言。它一般被用在一个与用户接口的环境中。它最初的设计目的是将数学公式写成一种电脑可以理解的方式。

学它一般很容易,但要分析APL写成的程序往往需要一段时间。与传统的结构式编程语言不同的是,APL的程序一般由一系列使用在序列上的单元的或双元的函数或运算符号组成。由于APL拥有许多非标准的运算符号,这些符号之间没有优先性(比如一般数学中的乘号、除号较加号、减号有优先权,APL中没有这样的优先权)。最初的APL语言没有任何控制结构如重复(do-while)或者条件选择(if-then-else),但一些序列运算符号可以用来模拟编程结构,比如iota(用来获得一个从1至N的序列)可以用来模拟重复(for)。

APL的工作环境被称为工作场。在这个工作场内用户可以定义程序和数据。数据也可以在工作场在程序外存在。用户可以在程序外改变数据,比如: N \leftarrow 4\ 5\ 6\ 7 将一个系列的数据4、5、6、7授予N。 N+4\,\! 输出8、9、10、11。 +/N\,\! 输出N内所有数的和,既22。 用户可以将工作场连同其中的所有数据和程序储存起来。在任何情况下,这些程序不是编译执行和,而是解释执行的。

APL最著名的就是它使用一组非ASCII符号。这些符号比一般常见的代数和计算符号要多。有人开玩笑说,用两行这样的奇形怪状的符号就可以将所有航空控制的问题解决了。事实上,在一些APL版本中,用一行程序就可以将任何可计算的函数表达出来。在用一行你可以将这个函数的结构表达出来。由于它的精密的结构和非标准的符号,也有人将APL称为“只写语言”。

除数学家外,其他人要读APL写的程序都感到非常困难。有些数学家觉得其它语言比APL难懂。由于APL使用不寻常的符号,许多编程员在写APL程序时使用专门的APL键盘。今天也有不同的只使用ASCII字母写APL的方法。 艾佛森后来还设计了一个APL的后续,称为J语言,这个语言只使用ASCII符号。至今为止只有一种J语言。一些其它语言也提供类似APL的功能。

A+是一种开源的编程语言,其许多指令与APL相同。 下面这个例子排列一个存在X里的词的序列,排列标准是每个词的长度: X[X+.' ';] 下面是一个寻找所有1和R之间的质数的例子: \left(\sim R \in R \circ . \times R\right)/R \leftarrow 1 \downarrow \iota R 下面是这个程序的读法(从右向左): \iota\,\!建立含有从1到R的自然数的系列(假如程序开始时R=6,那么\iota R\,\!是1 2 3 4 5 6) 放弃这个系列中的第一个元素(\downarrow)(1 \downarrow \iota R是2 3 4 5 6) 令R成为这个系列(\leftarrow是授值符号) 令R与R相成而组成一个矩阵,实际上是组成一个R乘R的乘法表(\circ . \times) 建立一个长度与R相同的系列,假如R中相应位置的数在乘法矩阵中出现,那么在这个位置上的数就应该是1,否则0(\in),这个运算的结果是0 0 1 0 1 逻辑地否新的系列中的数,也就是说,1成为0,0成为1(\sim),结果是1 1 0 1 0 选择R中相应的在新的系列中为1的数,这些数是质数(/\,\!),结果为2 3 5

以下为关联文档:

求解一个C语言调用递归函数实现5个数字反序打印的代码#include <stdio.h> #include <math.h> int reverse(int value); void main() { int a,value; scanf("%d",&value); a=reverse(value); printf("\n%d",a); } int reverse(int va...

C语言设计:用递归法将一个整数逆序输出楼主你好 具体代码如下: #include<stdio.h> void Reverse(int n)//递归逆序输出n { if(!n) return; printf("%d",n%10); Reverse(n/10); } int main(void) { int n; printf("Ent...

用c语言中递归调用的方法编写实现:输入的一行字符逆序输出#include <stdio.h> void reverse(char *s) { if (*s) { reverse(s+1); putchar(*s); } } void main() { char a[256]; gets(a); reverse(a); printf("\n"); }...

c语言:将递归的方法将一个正整数逆序输出算法:递归函数传入正整数,先输出最末尾数字,再除以10用递归函数继续迭代,直到该正整数为0时终止递归。 例程: #include<stdio.h> void rev(int n){ if(n > 0) { //判断该数是否大...

语言找不到命令鼠标显示鼠标显示()是一个子程序或者是支持库的命令 你可以试试全选所有的支持库看看。如果没解的话,你看看你这个源码有没有缺少模块EC。如果你确定没有用到相关的模块的话,那只能说你...

语言一个编辑框输入一个数字之后光标自动跳到编辑框2我是用的一个按钮写的 你后面是什么我没有听懂 不过前面的代码是这样的: .版本 2 .如果真 (编辑框1.内容 ≠ “”) 编辑框2.获取焦点 () .如果真结束 .如果真 (编辑框2.内容 ≠ “...

怎么用python语言调用safari浏览器并输入url我用过selenium模拟浏览器 使用selenium的chrome或firefox的webdriver打开浏览器 1 driver.get(url) #访问你的网页 1 from=driver.find_elements_by_xpath("xxx") 通过xpath...

有能在Android系统上运行的c语言编程软件吗推荐一下C4droid是款Android设备上的C/C++程序编译器[2] ,默认以tcc(tiny c compiler)为编译器,可以选择安装gcc插件(20mb,只有root用户可以使用),选用gcc后,可以用sdl(简单直控媒体层库,需安...

手机能否装C语言编译器可以装,不过需要安卓手机。 安装步骤如下: 1、我们打开谷歌应用商店。在搜索框里输入mobile c查找应用程序。下载并安装好 2、打开应用程序,我们点击右上角的添加新建文件的图...

推荐阅读
图文推荐