有没有人发明了一种编程环境或试验过一种编程环境,其中函数的拼写等......可以是近似的?

Has anyone invented a programming environment or experimented with one, where spelling of functions etc... can be approximate?

我正在尝试(但失败了)找到对语言或环境或编辑器插件的引用,程序员不必在这些地方正确拼写 methods/objects/etc...

相反,该语言在查找过程中使用智能启发式方法,并根据给定上下文为调用选择最可能的解释。

这是在不改源码的情况下! IE。不是拼写检查器 - 源代码按原样保存。

有没有人建造过类似这样的东西,where/how我能找到吗?

是的。 DWIM mode,泰特尔曼,1966 年。

(请注意,对于 LISP 系统,编程语言和用户界面之间的界限不一定清晰)

嗯,这是我最初在 this tweet 中看到的代码:

>>> def method_missing(n, *a, &b); send(methods.min_by { |m| levenshtein(n.to_s, m.to_s) }, *a, &b); end
>> p [1, 2, 3].elngth
3

该代码所做的是覆盖 ruby 的 method_missing 方法,如果使用对象上不存在的方法调用对象,则会调用该方法。在重写的 method_missing 方法中,它正在查看给定对象的所有方法,并找到名称最短的 Levenshtein distance,然后调用它,假设这就是程序员的意思!

然后第二行演示这会导致在调用 non-existent elngth 方法时调用 Array 上的 length 方法。

根据 this answer.

,代码是否实际工作而不是进入无限递归循环似乎在很大程度上取决于您的特定 ruby 环境

在编译时我不敢相信计算机。

有些 IDE 确实会检测拼写错误并在让您编译之前提供建议,我认为这是处理此类情况的最佳方式。

最近我一直在考虑创建一个开发环境,您可以在其中实际告诉计算机您想要什么应用程序、什么功能和界面,它会为您创建它,并猜测它能最好地满足您实际所说和想要的内容.我在研究阶段,学习更多关于NLP和机器学习的知识。

我认为通过对从单词(函数和关键字)数据集构建的条件概率图应用简单的递归贝叶斯定理,我们可以设计一个有用的代码拼写校正器 spell.pi作者:Peter Norvig。