我正在为更大的数据架构项目编写自我感知资源,而一些特定目标是用于网页的自我感知组件/资源。
(注意:我认为自我感知的数据和功能是一个重要的概念,超越了基于事件的架构,以及一般的行为编程,以实现真正的AI功能。任何拥有1500声望的人都可以为&#34创建一个标签;自我意识"我不能像这个页面所示。如果你喜欢这篇文章的方向,我很感激你的帮助... thx)
我有一个字符串" 10" (让我们称之为x)有许多操作可以在许多不同的语言中完成。我可以ctype_digit($ x),或者我可以在PHP中使用is_numeric($ x)。但是为了开发自我意识的组件,功能和数据架构,x 说会有所帮助 "我是价值#10;'"或者至少"我是一个字符串"。在一个完美的世界中,有一种方法可以从二进制级别处理这个问题。
这让我想起了http和ftp之间的区别。差异不一定是在客户端和服务器之间传输的数据类型。区别在于一个传输,另一个允许执行。好吧,是的FTP确实允许执行一个文件,但允许我这个区别来解释一个简单说"哦这是一个字符串之间的差异的一个例子,因为我在某个早期点说过。"
换句话说,分配数据类型和读取数据类型并不令人满意。这不是一种自我意识/自我表达的数据类型。这是一种易于按惯例阅读的东西。
此时,可以确定或完成自我意识/自我表达数据类型目标的系统(依赖于语言或其他方式)的任何一个示例都是该问题的有效答案(并且非常感谢备选视角! )
提前致谢。
答案 0 :(得分:1)
我们过去常常在Smalltalk中这样做。在Smalltalk中,口头禅是"一切都是对象"因为Smalltalk不像Java那样公开原语或显式拆箱。转到http://www.compileonline.com/execute_smalltalk_online.php并尝试:
Transcript show: 10 class printString
像魔术一样,答案是:
SmallInteger
数字10实际上是一个理解消息的对象" class"。响应消息" class",10返回定义其行为的对象(即其类)。如果我们要求该类对象作为其名称,它会响应" SmallInteger"。
试试这个:
Transcript show: 'I am a ', 10 class printString, ' of value ', 10 printString
I am a SmallInteger of value 10
事实上,我可以添加一个方法whoAmI"到类Object:
whoAmI
^'I am a ', self class printString, ' of value ', self printString
一旦我这样做了,那么:
Transcript show: 3.34 whoAmI
I am a FloatD of value 3.34
甚至更酷:
Transcript show: 3/4
I am a Fraction of value 3/4
(恕我直言)良好实现的面向对象语言通常支持这一点。 C#是一种主流的OO语言,可以做到这一点。到这里(http://www.compileonline.com/compile_csharp_online.php)并试试这个:
using System.IO;
using System;
class Program
{
public static void Main()
{
System.Console.WriteLine(10.ToString());
System.Console.WriteLine(10.GetType().Name);
}
}
通常,这种自我意识的技巧是在函数式编程语言中完成的。 Smalltalk主要是一种OO语言,但它从函数式编程中获得了一些启发。如果这种事情真的很吸引你,可以看一下LISP或其他功能语言。