我一直在努力解决这问题。链接也有一个解决方案。与SICP中问题的基本概念的链接
下面是问题的描述。
永无止境企业有限公司是一家高度分散的集团公司,由遍布世界各地的大量独立部门组成。该公司的计算机设备刚刚通过一种巧妙的网络接口方案连接起来,使整个网络在任何用户看来都是一台计算机。在她第一次尝试利用网络从部门文件中提取管理信息的能力时,他沮丧地发现,虽然所有的分区文件都是作为数据结构在Scheme中实现的,但所使用的特定数据结构因部门而异。仓促召开了一次司级管理人员会议,以寻求一种战略,在保持各司现有自主权的同时,整合满足总部需要的文件。 演示如何使用数据导向编程来实现这样的策略。例如,假设每个部门的人事记录由一个文件组成,其中包含一组在员工姓名上输入的记录。这套组合的结构因部门而异。此外,每个员工的记录本身就是一个集合(结构因部门而异),其中包含按标识符(如地址和薪资)键控的信息。特别是: 为总部实现一个获取记录过程,该过程从指定的人事文件中检索指定员工的记录。该程序应适用于任何部门的档案。解释各个部门的档案应该如何组织。特别是,必须提供什么类型的信息? 为总部实施一个获取薪资的过程,从任何部门的人事档案中返回来自给定员工记录的薪资信息。如何构造记录以使此操作工作? c.为总部执行一项查找员工记录程序.这应该在所有部门的文件中搜索给定员工的记录并返回记录。假设此过程以员工姓名和所有部门的文件列表为参数。 d.当永无止境地接管一家新公司时,必须作出哪些改变才能将新的人事信息纳入中央系统?
问题的概念围绕着有标记的数据。这个问题的解决方案显然使用get和put方法,这些方法使用使用对实现的底层表。
第二章提出了这个问题,作者在第三章中也明确地指出了表的引入。get和put的方法应该假设它们是existI使用的guile方案来实现脚本。
说了这些之后,我想知道如何使用STL容器和算法来实现类似于C++1y中标记数据的概念。另外,开发一个与基础表等价的类,并对其进行操作,使其完全适应C++1y中标记的数据。
密码不是必需的。在C++1y中可视化这个问题的概念,这样我就可以尝试使用C++1y的lamda函数来操作数据来补偿Scheme的函数式编程概念。
发布于 2017-03-28 09:12:33
在我看来,“标记数据”是一个抽象的概念。您可以选择任何表示来实现这个抽象。例如,您可以定义自己的“Put”和“Get”方法。
https://stackoverflow.com/questions/38521217
复制相似问题