用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]);

标签:脚本,JavaScript,编程,指针
0
投稿

猜你喜欢

  • 使用Python点云生成3D网格

    2023-02-06 18:32:45
  • vue-router传参的4种方式超详细讲解

    2024-04-27 15:48:21
  • Python绘制三角函数图(sin\\cos\\tan)并标注特定范围的例子

    2021-06-17 17:53:29
  • PHP函数按引用传递参数及函数可选参数用法示例

    2023-11-14 11:08:06
  • Python3 修改默认环境的方法

    2023-04-01 16:23:36
  • 轻松了解数据库计算机的概念和发展方向

    2009-01-23 13:55:00
  • jquery 禁止鼠标右键并监听右键事件

    2024-02-23 14:34:19
  • 手写Vue源码之数据劫持示例详解

    2023-07-02 17:01:28
  • Django+Ajax+jQuery实现网页动态更新的实例

    2023-02-11 03:23:19
  • asp如何使用Office Chart 9.0 制作图表?

    2010-06-05 12:41:00
  • XML DOM介绍和例子

    2007-10-15 20:23:00
  • 解决Mac下使用python的坑

    2021-02-26 21:47:38
  • 基于python批量处理dat文件及科学计算方法详解

    2021-05-16 18:00:12
  • Python读取excel文件中的数据,绘制折线图及散点图

    2023-09-12 11:47:31
  • 优化Mysql数据库的8个方法

    2024-01-15 01:37:24
  • vue如何使用router.meta.keepAlive对页面进行缓存

    2024-05-29 22:49:03
  • Python基于回溯法子集树模板解决旅行商问题(TSP)实例

    2023-04-27 15:39:32
  • Javascript Memoizer浅析

    2024-06-10 03:16:27
  • python中使用psutil查看内存占用的情况

    2022-11-11 11:26:22
  • python自然语言编码转换模块codecs介绍

    2022-10-07 00:48:40
  • asp之家 网络编程 m.aspxhome.com