惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
The Cloudflare Blog
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
V
Visual Studio Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
The GitHub Blog
The GitHub Blog
L
LangChain Blog
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
F
Fortinet All Blogs
博客园 - Franky
阮一峰的网络日志
阮一峰的网络日志
GbyAI
GbyAI
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
Engineering at Meta
Engineering at Meta
V
V2EX
MyScale Blog
MyScale Blog

月光博客

AI编程从零开始:环境配置到开发调试-月光博客 母亲被保健品诈骗-月光博客 向身体低头,向岁月妥协:我的高血压“还债日记” -月光博客 月光博客电子书:《信息安全指南》 谷歌发布2025年度搜索排行榜 中国2025社会热点大事记 2025年十大流行语发布 7天3次,骗子骗走我母亲95万元 “技术男”设三重安全墙,母亲95万存款还是被骗走了 电信诈骗后的复盘:母亲的95万元,是怎么从手机银行里消失的 母亲被电信诈骗95万元的全过程 阿根廷警察被谷歌街景相机拍到裸照 网信办开展“清朗·整治恶意挑动负面情绪问题”专项行动 翟欣欣敲诈勒索案一审获刑12年 《绝命毒师》影评:力工觉醒后的梭哈至死 《人工智能生成合成内容标识办法》正式施行 用AI分析你的财务信息 腾讯子公司实习HR怒怼求职者后被开除 OpenAI发布最强模型GPT-5,免费向所有用户开放 用AI解构你的日记 用AI分析你的游戏偏好 用AI分析你的观影偏好 用AI分析你的听歌偏好 《白鹿原》人物分析:乱世浮沉中的人性剖析 乌托邦的捷径:让AI治理“失败国家” 苹果AI的“路径错误”:为什么它在大模型时代掉队了? 《暗黑破坏神3》第35赛季开荒指南 我对特朗普的看法 欧·亨利十大经典小说鉴赏 HBO电视剧《最后生还者》第二季影评
程序员眼中的《盗梦空间》
投稿 · 2010-09-30 · via 月光博客

越来越觉得《盗梦空间》是给程序员们拍的了。那么进入一层梦境到底怎么映射到编程?是递归?是循环?还是简单的函数调用?

对于一个进入梦境中的人来说是递归,一层层push进了再一层层pop出来,对于很多进入梦境中的人来说,是函数调用,因为停在某一层梦境中的人与其他进入更深梦境中的人是同时工作的。更加确切的说,进入梦境中的人算是程序中设定的全局变量,梦境中虚拟出来的人算是局部变量,而一个程序中一般不会只有一个全局变量,所以进入梦境不是递归操作而是函数调用了。每一个虚拟出来的梦境都是一个函数,可以由任何其他梦境任何时候调用(进入),进入此函数(梦境)的变量(人),一般还是要返回的,就是函数返回的参数了,此变量返回时作为人并非没有任何变化,比如Cobb给Ariadne在梦境中注入了一个思想,那么Ariadne作为变量返回时就是经过处理的了。一般来说编程中函数最好是返回参数的,要么是直接处理后得到的最终值,要么是得到的一个标志变量,但也可以不返回参数,也就是void型的,对应到电影中就是:进入此梦境中的人可以返回,可以不返回,永远留在梦境中。

盗梦空间

为什么进入一个梦境中比前一个梦境(或许是现实)时间要变慢了?或许可以这么理解:如果我们把现实世界看作主函数(main函数)的话,那么我们一般不喜欢在一条主线中写太长的代码,那么我们希望写一个函数来调用,写好函数之后,在此流程中直接写一个函数调用语句就行了,具体的过程就由此函数来完成,我们默认允许此函数用长一些的时间去完成逻辑功能,当然很多情况下处理时间越短越好。

进入梦境的时候会选择进入谁的梦境,被选定的这个人在程序中就对应一个最主要的变量,这个人在梦境中如果被杀掉,就对应此函数中的主要变量有问题,不符合此函数(梦境)对此变量(人)的要求。此时就要throw exception并且return回到上层梦境(函数)。

设计梦境的人就是编写此程序的程序员。此人也可以进入他设计的梦境,而程序员面对自己的程序也要不断深入,因为要找各种bug.如果此程序员留在了梦境中没有出来,我们可以这样理解,这个程序员出了问题或者说这个程序员写的程序出了问题。所以说选择一个好的造梦师(程序员)至关重要,所以cobb才会回到巴黎找他老师(也是父亲?没太弄清楚)要一个很聪明的学生,并把她培养成一个优秀的造梦师。cobb作为一个造梦师,自身条件是很好的,可是有一个致命的缺点:总是抛不掉自己过去的或是生活中或是梦境中做的不好的场景,并且这些场景会经常出现在新的梦境中。对应地,一个程序员,如果总是沿用自己过去写过的程序,那些代码段自己以前写的时候或出现了问题或者问题没有表现出来,但是在新的要求下并不符合要求了,或者写新的程序时候总是沿用自己过去的编程思想,或许那些思想并不适用于新的情况。所以一个程序员很重要的一点是要打破自己的惯性思维,遇到问题即使跟以前遇到过的很像也要仔细地重新审视。打破常规,发散思维,这样一个程序员才会有长足的发展。

作者:alexzhan,作者电子邮件:alexzhan12@Gmail.com ,欢迎来信交流

程序员眼中的《盗梦空间》