用JavaScript脚本实现的图灵机
作者:月影 来源:月影博客 发布时间:2009-01-21 18:10:00
Array.prototype._ = function(){
var _p = 0;
var _v = 0;
(function(){
for(var i = 0; i < arguments.length; i++){
var c = arguments[i];
if(typeof c == 'number'){
this[_p] = this[_p] || 0;
this[_p] += c;
}
else if(c instanceof Array){
if(c.length == 0){
this[_p] = _v;
}else if(c.length == 1){
_v = this[_p];
_p += c[0];
}else{
while(this[_p]){
arguments.callee.apply(this,c);
}
}
}
}
}).apply(this, arguments);
return this;
};
[+n] 读取指针处内容并且指针从当前位置前进n步
[-n] 读取指针处内容并且指针从当前位置后退n步
+n 指针指向的字节的值加n
-n 指针指向的字节的值减n
[] 将数据写入指针处
[ 如果指针指向的单元值为零,向前跳转到对应的]指令的次一指令处
] 如果指针指向的单元值不为零,向后跳转到对应的[指令的次一指令处
计算1+2+3......+100的值:
alert([100]._([[+1],[],-1],[-1],[[-1,[+1],+1,[-1]],[],[-1]])[0]);
比较两个数的大小,得到较小的那个:
alert([,,4,5,]._([+2],[[-2],+1,[+2],-1,[+1],-1,[0,[+1]],[-2]])[0]);


猜你喜欢
- ISNULL 使用指定的替换值替换 NULL。 &nb
- 1. zip() 函数的介绍1.1 功能zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组
- 本文实例讲述了Flask-Mail用法。分享给大家供大家参考,具体如下:很多类型的应用程序都需要在特定事件发生时提醒用户,而常用的通信方法是
- 第一个保存在新建一个文本中<% Dim Username,PassWord,strLogFile,f,ff,Str
- 前言一般js破解有两种方法,一种是用Python重写js逻辑,一种是利用第三方库来调用js内容获取结果。这两种方法各有利弊,第一种方法性能好
- 利用原生js实现一个简易的计算器(附详细注释),供大家参考,具体内容如下<!DOCTYPE html><html lang
- 普通关闭我的mysql是自己下载的tar包,自己设定安装目录来安装的。停止mysql服务,说来简单,但不知道的话,还真是挠头。在这和mysq
- 1.1.1 摘要 Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接、外联接和交叉联接等。如果我们想
- 一 位置传递没什么好过多讲解.# 位置传递实例:def fun1(a,b,c): return a+b+cprint(fun1(
- 一、Python操作PDF 13大库对比PDF(Portable Document Format)是一种便携文档格式,便于跨操作系统传播文档
- 在本文中,我将分享五个 Jupyter 扩展来提大家的工作效率。 欢迎收藏学习,喜欢点赞支持。技术交流群文末提供,欢迎畅聊。让我们开始吧!1
- 1.引言热力图的想法很简单,用颜色替换数字。现在,这种可视化风格已经从最初的颜色编码表格走了很长一段路。热力图被广泛用于地理空间数据。这种图
- 想买mate40,但总是抢不到,所以想试着能不能写个脚本代码。第一步:把想要抢购的商品加进购物车,注意:脚本是对购物车内全部商品进行下单操作
- 兼容当前HTML/XHTML文档是否有DTD声明:以下为程序代码:var xtop = document.documentElement.s
- 定义及路由机制定义在settings里面的DATABASES是一个字典,用于定义需要的数据库,如下,一共定义了两个数据库。DATABASES
- 我们把对象(变量)从内存中变成可存储的过程称之为序列化,比如XML,在Python中叫pi
- UPA2008于2008年10月24日在深圳举行,托哥、绿桔应邀主持了一场圆桌会和一场工作坊,以下是圆桌会议《商业价值与用户价值的平衡》的现
- vue项目中在可编辑div光标位置插入内容html:<div class="mouse-move fl f12 h22 lh
- unplugin-auto-import的配置和eslint报错解决先上官网:unplugin-auto-importunplugin-au
- 用df命令查了下,果然磁盘满了,因为当时分区采用系统默认,不知道为什么不能自动扩容!以后在处理这个问题!如图所示:[root@snsgou