- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我看过 之间的一些比较Smalltalk 和 Ruby 一方面和 Ruby 和 Python 另一方面,但是 不在 Python 和 Smalltalk 之间 .我特别想知道实现、语法、可扩展性和哲学的根本区别是什么。
例如 Python 似乎没有元类。 Smalltalk 没有生成器的概念。虽然都说两者都是动态类型的,但我相信 Python 不做动态方法分派(dispatch)。这样对吗?
最佳答案
For example Python does not seem to have Metaclasses.
type
默认情况下。 Python 的设计哲学,又名“Python 之禅”,可以通过做
import this
来细读。在交互式口译员的提示下;这里的适用点是第二点,“显式胜于隐式”。
class sic:
__metaclass__ = mymeta
...
class sify(metaclass=mymeta):
...
Smalltalk has no concept of generators.
iterator := aCollection iterator.
[iterator hasNext] whileTrue: [iterator next doSomething].
select:
):
aCollection select: [:item | item doSomething].
if
或
while
:它们可以通过发送代码块作为适当方法的参数来完成(例如
ifTrue:
bool 方法)。 (Ruby 选择在一流代码块之外使用关键字/语句;我想说 Python [[explicitly]] 和 Smalltalk [[implicitly]] 都像 C 一样,都试图“提供一种执行一个操作”,而 Ruby 更像是 Perl 派的“有很多方法可以做到”)。
And although both are said to be dynamicly typed, I believe that Python does not do dynamic method dispatch. Is this correct?
for i in range(10):
myobject.bah()
bah
在
myobject
-- 以防万一该方法的先前执行导致
myobject
在内部完全重组自身,使其当前
bah
方法与前一个完全不同(对于程序员来说,依赖如此激烈的动态可能是一件非常疯狂的事情,但 Python 支持它)。这就是导致:
themethod = myobject.bah
for i in range(10):
themethod()
关于python - Smalltalk(例如 Pharo)与 Python 相比如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1508256/
四处查看图片并搜索“:=”不会产生很快弹出的相关结果。 赋值在 Pharo 图像中的具体位置以及如何实现? 最佳答案 赋值被翻译成字节码指令。对临时变量的赋值转换为 popIntoTemp:,它将当前
是否可以监听类在更改时抛出的事件?我需要知道系统浏览器中某些类中的某些内容(代码、变量等)何时发生变化。 最佳答案 注意,自 Pharo 2.0 以来,现在有一个 SystemAnnouncer 可以
我在 Pharo 中有一个 do: 需要很长时间来处理。我想向用户展示它的进度。这在 Pharo 中是如何完成的? 最佳答案 这里有两种方式: Collection 借鉴了 UIManager 并支持
在 Nautilus 系统浏览器 (Pharo 6) 中,有一个右键单击命令可以Add package... 以及 Add class... 甚至 Add protocol...,但我无法在任何地方找
有时,最好暂时使用已弃用的方法,而不是创建一个项目的多个分支来支持多个版本的 Pharo。至少,我有时就是这样做的。但是,调用已弃用的方法会使我的单元测试在 Pharo 3.0 中失败。 有什么我可以
我在网上查过 @ 的含义Pharo 中的接线员,但找不到任何东西。 Pharo是什么意思@运算符(operator)?例如,为什么25@50评估为:"(25@50)" ? 最佳答案 在 Smallta
我不明白如何创建我自己的 Slot 子类并在 Pharo 中使用它。问题是槽处理代码似乎需要我实现#size 和#index,但我不知道该放什么。 用例是表示配置的类的定义。用户可以指定部分配置,并依
我可能刚刚错过了它们,但我似乎在 Pharo 中找不到任何提及不可变数据结构的内容。来自函数式语言,我发现不可变 map 和 set 在各种场合都很有用。尽管 Pharo 对使用变异有特别的偏见,但如
我正在寻找一种方法,在给定包名称的情况下,加载该包在给定日期的最新版本。 例如: HypotheticalClassLoader loadPackage: 'Athens-Core' onDate:
使用 2.0入门,熟悉 Smalltalk,因此我在图像或“实例”一书中(已过时)找不到工具问题。 寻找输入字段(不是现成的对话框)。喜欢: (TextMorph new) contents: '(e
我正在查看 Pharo Smalltalk 的语法,并且想知道如何实现二进制消息的优先级。 如何声明这样的二进制消息? 系统如何确定一元消息的优先级? 最佳答案 用于实现二进制消息: 是的,例如,您可
对于Pharo的新手,如何创建一个包? MOOC exercise说“使用浏览器创建一个包”,但是如何? 最佳答案 您可以在 3.2 Creating a new Package in Pharo b
我关闭了标题为“Welcome to Pharo 2.0”的工作区。如何再次打开它? 最佳答案 尝试打开一个新的空白工作区并使用右上角的三角形转到“以前的内容”条目。您应该在那里找到默认的“欢迎使用
想要尝试使用 Bloc(基本最低要求:创建一个 BlElement),按照基本说明获取包 here : Metacello new baseline: 'Bloc'; repository
我有一个 C 函数,它将字符串复制到传递给它的缓冲区中: void get_machine(char *buf) { /* do something to acquire the machin
我对法罗相当陌生。我正在运行 Ubuntu Raring Ringtail (13.04) 并使用 Pharo 网站上推荐的 PPA 以及 Pharo 30218 图像,并希望启用中键功能。 (我有一
想要将我的小项目从 Pharo 5 迁移到 Pharo 6.1,当我右键单击我的包及其类时,我很高兴地找到了File Out 选项。我看到它为我的图像目录中的那些工件生成文本文件(我在 Windows
normalize: sum | strategy normalizingSum | strategy := sum collect: [ :each | each max: 0.0
为 Pharo 编写基于模拟的单元测试有哪些不同的选择?今天?各有什么优缺点? 最佳答案 还有Mocketry它提供了一个很好的 DSL 关于Pharo 模拟框架,我们在Stack Overflow上
我正在使用 PharoCloud 为我托管 Pharo 图像。默认情况下,它仅将图像的 ZIP 下载到我的设备;此 ZIP 不包含 .sources 文件。 我正在尝试使用 ZnClient 手动下载
我是一名优秀的程序员,十分优秀!