<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="bbPress/1.0.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>冒号论坛 &#187; Topic: 数据是什么？</title>
		<link>http://bbs.zhenghui.org/topic/%e6%95%b0%e6%8d%ae%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9f</link>
		<description>冒号论坛 &raquo; Topic: 数据是什么？</description>
		<language>en-US</language>
		<pubDate>Fri, 10 Feb 2012 12:50:17 +0000</pubDate>
		<generator>http://bbpress.org/?v=1.0.2</generator>
		<textInput>
			<title><![CDATA[Search]]></title>
			<description><![CDATA[Search all topics from these forums.]]></description>
			<name>q</name>
			<link>http://bbs.zhenghui.org/search.php</link>
		</textInput>
		<atom:link href="http://bbs.zhenghui.org/rss/topic/%e6%95%b0%e6%8d%ae%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9f" rel="self" type="application/rss+xml" />

		<item>
			<title>Todd on "数据是什么？"</title>
			<link>http://bbs.zhenghui.org/topic/%e6%95%b0%e6%8d%ae%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9f#post-92</link>
			<pubDate>Mon, 22 Mar 2010 11:59:45 +0000</pubDate>
			<dc:creator>Todd</dc:creator>
			<guid isPermaLink="false">92@http://bbs.zhenghui.org/</guid>
			<description>&#60;p&#62;数据抽象把数据分为：外部接口和内部表示(representation)两部分。我觉得函数式数据的内部表示非常神奇，就好象是人的基因一样。
&#60;/p&#62;
</description>
		</item>
		<item>
			<title>hui on "数据是什么？"</title>
			<link>http://bbs.zhenghui.org/topic/%e6%95%b0%e6%8d%ae%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9f#post-91</link>
			<pubDate>Sat, 20 Mar 2010 22:49:42 +0000</pubDate>
			<dc:creator>hui</dc:creator>
			<guid isPermaLink="false">91@http://bbs.zhenghui.org/</guid>
			<description>&#60;p&#62;不错，λ-calculus的威力（图灵完备）由此可见一斑。
&#60;/p&#62;
</description>
		</item>
		<item>
			<title>Todd on "数据是什么？"</title>
			<link>http://bbs.zhenghui.org/topic/%e6%95%b0%e6%8d%ae%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9f#post-90</link>
			<pubDate>Sat, 20 Mar 2010 18:40:02 +0000</pubDate>
			<dc:creator>Todd</dc:creator>
			<guid isPermaLink="false">90@http://bbs.zhenghui.org/</guid>
			<description>&#60;p&#62;以前看过的Church计数，当时完全不理解是怎么回事，只觉得很有趣。现在认识到数据和操作是不可分割的，才有了更深的理解。数学真是神奇，把日常生活中的1，2，3都能发现出这么深刻的道理！&#60;/p&#62;
&#60;p&#62;http://en.wikipedia.org/wiki/Church_numeral
&#60;/p&#62;
</description>
		</item>
		<item>
			<title>hui on "数据是什么？"</title>
			<link>http://bbs.zhenghui.org/topic/%e6%95%b0%e6%8d%ae%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9f#post-89</link>
			<pubDate>Fri, 19 Mar 2010 12:42:00 +0000</pubDate>
			<dc:creator>hui</dc:creator>
			<guid isPermaLink="false">89@http://bbs.zhenghui.org/</guid>
			<description>&#60;p&#62;没错，所谓队列，就是有FIFO机制的类型。这是一个整体概念，应当是一个抽象的type，而不是具体的struct。C虽然在语法上不完备地支持ADT（没有封装机制），但还是能从概念上支持的。
&#60;/p&#62;
</description>
		</item>
		<item>
			<title>Todd on "数据是什么？"</title>
			<link>http://bbs.zhenghui.org/topic/%e6%95%b0%e6%8d%ae%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9f#post-88</link>
			<pubDate>Fri, 19 Mar 2010 12:24:15 +0000</pubDate>
			<dc:creator>Todd</dc:creator>
			<guid isPermaLink="false">88@http://bbs.zhenghui.org/</guid>
			<description>&#60;p&#62;谢谢！可不可以这样理解《冒号课堂》中的C语言实现队列的例子：虽然还是C语言的一组函数，但它的目的已经不是过程抽象，而是数据抽象。OOP让数据抽象变得更自然。
&#60;/p&#62;
</description>
		</item>
		<item>
			<title>hui on "数据是什么？"</title>
			<link>http://bbs.zhenghui.org/topic/%e6%95%b0%e6%8d%ae%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9f#post-87</link>
			<pubDate>Fri, 19 Mar 2010 12:02:54 +0000</pubDate>
			<dc:creator>hui</dc:creator>
			<guid isPermaLink="false">87@http://bbs.zhenghui.org/</guid>
			<description>&#60;p&#62;&#38;gt;&#38;gt;OOP的数据抽象正是以数据为中心组织操作&#60;/p&#62;
&#60;p&#62;这个说法稍微有点问题。既然上面提到的“数据”是用“操作”来定义的，那么“以数据来组织操作”便有循环定义之嫌了。《冒号课堂》中的提法是：OOP是“以数据为中心组织逻辑”(P39)。&#60;/p&#62;
&#60;p&#62;这么说可能更清楚些：在OOP中，定义数据抽象是类的&#60;strong&#62;设计者&#60;/strong&#62;的任务，选择数据结构(data structure)并以之为中心实现各接口是类的&#60;strong&#62;实现者&#60;/strong&#62;的任务。（在实际编程中，这二者的角色可能一人承担）
&#60;/p&#62;
</description>
		</item>
		<item>
			<title>hui on "数据是什么？"</title>
			<link>http://bbs.zhenghui.org/topic/%e6%95%b0%e6%8d%ae%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9f#post-86</link>
			<pubDate>Fri, 19 Mar 2010 11:29:12 +0000</pubDate>
			<dc:creator>hui</dc:creator>
			<guid isPermaLink="false">86@http://bbs.zhenghui.org/</guid>
			<description>&#60;p&#62;&#38;gt;&#38;gt;数据本身只是一个符号，它的特征是由其相关的一系列操作（包括构造和使用两类）所体现的&#60;/p&#62;
&#60;p&#62;这种理解是正确的。之所以说数据是抽象的，是因为我们不关心其内部的具体结构表示（representation），只关心它是如何被创建、如何被使用的。也就是说，数据应当被当作一个黑箱来使用，任何超过其定义的使用方式都是侵犯其隐私、破坏其抽象的行为。&#60;/p&#62;
&#60;p&#62;不过，上述“符号”二字或许改为“对象”（广义的对象，并非OOP中狭义的对象）更贴切些，因为前者容易让人把数据与指代它的变量混为一谈。事实上，在你参考的文章中也是使用“data object”的字眼。&#60;/p&#62;
&#60;p&#62;如果以这种方式来理解数据，那么就很容易理解“函数也是数据”的思想了。在SICP中讲述的Scheme语言正体现了这种函数式风格。&#60;/p&#62;
&#60;p&#62;在此基础上，（抽象）数据类型的概念也非常自然了。ADT关心的是通过接口定义在一类数据上的行为，而不是它们的内部数据结构。
&#60;/p&#62;
</description>
		</item>
		<item>
			<title>Todd on "数据是什么？"</title>
			<link>http://bbs.zhenghui.org/topic/%e6%95%b0%e6%8d%ae%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9f#post-85</link>
			<pubDate>Fri, 19 Mar 2010 10:22:32 +0000</pubDate>
			<dc:creator>Todd</dc:creator>
			<guid isPermaLink="false">85@http://bbs.zhenghui.org/</guid>
			<description>&#60;p&#62;今天看了SCIP的数据抽象一节，然后结合之前《冒号课堂》的内容，我感觉对数据的认识又深入了一些。&#60;/p&#62;
&#60;p&#62;我现在对数据的认识是：数据在程序中是一个符号和该符号上的操作规则。比如：定义了一个符号pair，若pair = make_pair(x, y)则left(pair) == x, right(pair) == y。pair本身只是一个符号，它的特征是由其相关的一系列操作（包括构造和使用两类）所体现的。OOP的数据抽象正是以数据为中心组织操作。不知道理解对不对？&#60;/p&#62;
&#60;p&#62;参考文章：&#60;br /&#62;
http://mitpress.mit.edu/sicp/full-text/sicp/book/node30.html
&#60;/p&#62;
</description>
		</item>

	</channel>
</rss>

