J语言与APL

J语言和Java没啥关系,风格也迥然不同。
J语言是从APL语言发展而来。

APL语言由Ken E. Iverson教授发明出来,是很老的语言了。没有十分的流行,可能是因为它的编程需要使用一些特殊的“象形符号”,而不是现在大多语言采用的ASCII字符。
APL语言更像是用数学符号来描述问题,其特点是代码极为精简。甚至到丧心病狂的程度。用普通语言几十行,甚至上百行的程序,它可能一行就搞定了。
这当然也带来一个问题。就是可读性就降低了,你可能对着程序看了半天才明白其用意。这也是它没有大流行的原因吧。

J语言可以看为APL的后继。
Iverson教授看到APL特殊符号不方便,后来和Roger Hui又一起开发了J语言。

语言特点

可以认为 J 是面向数组的
它会把数组(甚至是数组的数组或称为向量的)当成一个普通数字一样整体处理,这就避开了大量的循环逻辑。
J风格更多是函数式而非命令式的。
通过函数的复合与嵌套,可以获得强大的表达能力,这是以数学为背书的,其简洁高效性,非命令式写法所能及。
它沿用了自然语言中的概念,使用动词,副词,名词等概念来组成句子。

语言安装包很小,提供了很完善的帮助系统。
可移步网站:www.jsoftware.com

show一点端倪

上几个小例子体会一下

  • 加法在不同场景下有不同的含意:

    这是个人机交互的窗口环境。
    向右缩进的部分是用户输入的内容
    紧帖左边是系统回应的内容

  • 基本的加减乘除
    其中,除法用%,因为 / 有更重要的用处
    并且,双目运算符,单目运算符,其含义不同。

优先级的问题

使用简单的规则,没有乘法优先于加法等规则。
是一种栈式规则。从右到左取数,并运算,结果放回到栈中。
例如:
8 * 2 + 3,结果是40,运算过程如下:
先取出 3,(如果是数组,则取出所有数,作为单个数看待)
再取出 + ,发现是个动词,已有一个操作数,需要再取一个数
取出 2, 进行加法运算,得到 5, 再放回栈中。
从头再开始这个过程,直到栈中只剩下一个词。

小试牛刀

一个流浪汉,于1650年,在银行存了 17 美元,之后不知所踪。
假设年利率为 3,4,或 5,到2021年,按年复利计算,求其账面额度分别为多少。

其简洁性可略见一斑。
(更多内容。。。。且听下回分解吧)

介绍一个超级的计算器--J语言(1)相关推荐

  1. python语言设计简单计算器_Python 设计一个简单的计算器-Go语言中文社区

    设计目标 实现加减乘除及拓号优先级解析 用户输入'1 - 2 * ( (6-3 +(-5/5)*(9-2*3/3 + 7/3*7/4*12 +10 * 5/5 )) - (-4*3)/ (12-3*2 ...

  2. 蓝海创意云丨介绍一个超级实用的CG后期制作管理工具~

    今天介绍安捷秀超级实用的CG后期制作管理模块,CG后期制作模块主要面向CG.VFX.三维动画等影视行业,帮助企业高效管理项目,提高工作效力,助力影视作品保质.保量.如期完成. 下面我们来看看如何使用C ...

  3. 给大家介绍一个超级好用的H5APP开发工具

    WeX5简介 wex5框架 开源免费  WeX5采用Apache许可证开源模式,商业友好,完全免费.基于WeX5开发出来的应用,每一行代码都在你手里,发布部署无任何限制,完全自由免费. 基于主流技术和 ...

  4. 用c语言完成一个正方形面积计算器,C语言编程问题(面积计算器)——新手问题...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 下面这个程序只能让1-4以外的数字进行一次循环,就是比如你输入的是5,他会让你再输一次,如果再输一次还是4以上的,他将结束进程.如何修改才能使得他能够无限 ...

  5. 介绍一个在线贷款计算器

    介绍一个房贷的计算器,里面包含了多种计算方式,可为目前急需贷款的你,提供计算每个应该还的金额. https://www.lmcjl.com/index/calculation/loan?menu_id ...

  6. 给大家介绍一个相当好的播放器 J River Media Center 15

    我想比较喜欢折腾的同学们一定试过不少播放器,Kmplayer,QQ影音,射手,千千静听,foobar2000.... 今天给大家介绍一个音质相当不错播放器,不要以为它只能播放音乐,其实它不仅可以播放各 ...

  7. c语言设计程序计算器,C语言程序设计,做一个简单计算器

    题目: C语言程序设计,做一个简单计算器 程序内容有:加减乘除和平方,立方,开方等.用if或者swith结构来编程. 算加法时只输出加法的结果,算减法时只出减法的结果,如此类推. 解答: 已发送, # ...

  8. J语言初步,绝妙的符号系统,神的计算器

    文章目录 简介 算术符号和优先级 赋值和比较 复合动词 动词列表 理解阶乘!! 简介 J语言更像是一个大型符号系统,用以解决复杂的数学运算.所以在下载J语言之后,进入jconsole,就可以凭借感觉进 ...

  9. 用C语言实现一个简单的计算器代码

    #include <stdio.h> #include <math.h> #include <stdlib.h> //预处理指令 int main(void) {d ...

最新文章

  1. Java垃圾回收工作原理
  2. php数组实现堆栈的三个函数,while,do while,s函数的参数作用域,数组堆栈,常见的数组函数等学习2018/8/23...
  3. 全球容器技术大会议题一览
  4. python笔记之if语句及嵌套浅析
  5. (pytorch-深度学习系列)使用Pytorch实现小型卷积神经网络网络
  6. 使用 Swift 在 iOS 10 中集成 Siri —— SiriKit 教程(Part 1)
  7. DartWeb基础—简单入门
  8. stone (组合数学 + Lucas定理)
  9. LeetCode刷题系列(二)二分查找、二叉排序树 的应用
  10. 大学生必看的一分钟——俞洪敏语录
  11. Linux命令大全详解
  12. Isight 软件集成AVLCruise软件方法探讨
  13. 快速下载TUM数据集
  14. Cholesky分解
  15. Qt 远程开关机 WakeOnLAN 编辑MagicPacket
  16. 菜鸟版JAVA设计模式—从笔记本电源线看适配器模式
  17. 安装算量软件使用_鹏业安装算量软件常用按钮汇总(五)
  18. [转]《财富》推荐的75本必读书 !!推荐看看!受益匪浅
  19. 从今天起我想要热爱生活
  20. 前端xmp-js解析图片xmp信息

热门文章

  1. Pthon中的输出函数
  2. 【c语言】组合数递归
  3. IE 凉了?怎么可能!
  4. 计算机里设备和驱动器下面有个没有名字的文件夹怎么删除它
  5. VMware虚拟机如何开启雷电模拟器的VT?
  6. 学校计算机管理员考核方案,计算机科学与工程学院班级创建目标管理实施细则...
  7. python3数据处理(一)-- 解析XML,Excle文件
  8. 超级准确的Android/JAVA面试题合集,背会你就10k!
  9. python画玫瑰曲线_turtle画玫瑰花,表白必备
  10. arm64 ext指令图解