Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
任何数据结构&;使用Objective-C或其他关键字消息语言编写的算法书籍/示例?_Objective C_Algorithm_Data Structures_Message Passing - Fatal编程技术网

任何数据结构&;使用Objective-C或其他关键字消息语言编写的算法书籍/示例?

任何数据结构&;使用Objective-C或其他关键字消息语言编写的算法书籍/示例?,objective-c,algorithm,data-structures,message-passing,Objective C,Algorithm,Data Structures,Message Passing,我尝试过搜索数据结构/算法书籍,这些书籍提供了Objective-C或其他支持关键字消息语法的语言的示例,但都没有用 我之所以对此感兴趣,是因为我真的认为关键字语法可以帮助我理解代码的意图,我发现在使用典型函数调用语法的语言中,我需要考虑更长的时间 一个很好的例子是C语言实现中的以下代码片段: /* Continue down the tree. */ n = splay_tree_splay_helper (sp, key, next, node, parent); 函数名是毫无帮助的,即

我尝试过搜索数据结构/算法书籍,这些书籍提供了Objective-C或其他支持关键字消息语法的语言的示例,但都没有用

我之所以对此感兴趣,是因为我真的认为关键字语法可以帮助我理解代码的意图,我发现在使用典型函数调用语法的语言中,我需要考虑更长的时间

一个很好的例子是C语言实现中的以下代码片段:

/* Continue down the tree.  */
n = splay_tree_splay_helper (sp, key, next, node, parent);
函数名是毫无帮助的,即使有注释,我也必须彻底阅读代码才能知道那里到底发生了什么

我知道从技术上讲,任何一段C代码都是有效的Objective-C,但我正在寻找一种能够利用Objective-C这样的良好对象模型来构造算法实现的东西,因为我相信生成的代码更易于维护。在算法设计的性能受限空间中,这似乎是违反直觉的,但我已经看过很多算法书籍,其中有惯用Ruby、Python、Javascript等的示例


基本上,我正在寻找任何具有良好对象模型的东西,该模型允许非常描述性的关键字消息,无论是Objective-C还是Smalltalk家族中的任何东西(尽管可能不太可能)。

我认为您在寻找错误的东西

一本好的算法和数据结构书籍将尽量不浪费您的时间阅读难读的源代码。我所知道的大多数好书都花了大部分时间在高层次上解释事情,只以小片段的形式展示实际代码,这些代码可以轻松理解,而不依赖于所使用的语言以及您对它的熟练程度

不管有些人对splay树的实现有多复杂。只要您知道splay树是什么,您就应该能够实现自己的版本,而无需过多地查看hit


最后,一个好的对象模型和好的语法并不是一切的目的。许多数据结构使用的联合类型在OO风格中没有很好地实现,命名模式和语法应该能够很快适应。

我认为你找错了地方

一本好的算法和数据结构书籍将尽量不浪费您的时间阅读难读的源代码。我所知道的大多数好书都花了大部分时间在高层次上解释事情,只以小片段的形式展示实际代码,这些代码可以轻松理解,而不依赖于所使用的语言以及您对它的熟练程度

不管有些人对splay树的实现有多复杂。只要您知道splay树是什么,您就应该能够实现自己的版本,而无需过多地查看hit


最后,一个好的对象模型和好的语法并不是一切的目的。许多数据结构使用的联合类型在OO风格中没有很好地实现,命名模式和语法应该能够很快适应。

你为什么想要一本书?只需下载一个,并阅读整个实际来源。打开系统浏览器,选择其中一个集合类别(类别集合),然后开始浏览代码(额外的列用于消息类别)。打开一个工作区,键入objectcmd-B(或ctrl-B,用于浏览),亲自看看为什么发明了单一责任原则。使用层次结构、发送者和实现者浏览代码

你为什么想要一本书?只需下载一个,并阅读整个实际来源。打开系统浏览器,选择其中一个集合类别(类别集合),然后开始浏览代码(额外的列用于消息类别)。打开一个工作区,键入objectcmd-B(或ctrl-B,用于浏览),亲自看看为什么发明了单一责任原则。使用层次结构、发送者和实现者浏览代码

“关键字语法”是什么意思?简言之,c中的a.doSomething(b,c,d)类似于Obj-c中的[a doSomething with:b on:c with:d]。请参见()。这也类似于doSomethingWith:b on:c with:d。闲聊。注意,在这两种情况下,方法签名都变为“doSomethingWith:on:with:”,而不是“doSomething”。这不是最好的例子,但在命名一个包含大量参数的函数并对其含义进行编码时,这是一个巨大的帮助。啊:我认为一般术语是“命名[函数]参数”,而不是“关键字语法”。通常是保留字。不完全是。因为在大多数语言中(据我所知),命名args实际上对方法签名没有任何影响。根据语言的不同,这可能会导致一些过载问题。仅供参考,您所询问的语法的发起者是,也因其是最早的面向对象编程语言之一而闻名。你可能喜欢阅读Smalltalk。你所说的“关键字语法”是什么意思?简言之,c中的a.doSomething(b,c,d)与Obj-c中的[a doSomething with:b on:c with:d]类似。请参见()。这也类似于doSomethingWith:b on:c with:d。闲聊。注意,在这两种情况下,方法签名都变为“doSomethingWith:on:with:”,而不是“doSomething”。这不是最好的例子,但在命名一个包含大量参数的函数并对其含义进行编码时,这是一个巨大的帮助。啊:我认为一般术语是“命名[函数]参数”,而不是“关键字语法”。通常是保留字。不完全是。因为在大多数语言中(据我所知),命名args实际上对方法签名没有任何影响。根据语言的不同,这可能会导致一些过载问题。仅供参考,您所询问的语法的发起者是,也因其是最早的面向对象编程语言之一而闻名。你可能会喜欢阅读Smalltalk。再说一次,我并没有说OO就是一切的终结,只是说它是一个经验证的合作范例