问题标签 [smalltalk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
8456 浏览

smalltalk - Smalltalk 的 whileTrue 消息是如何在幕后实现的?

我正在尝试自学 Smalltalk。一个教程有这个while循环的例子:

据我了解,whileTrue 是发送到 BlockClosure 的消息,告诉接收方 BlockClosure 运行作为参数给出的 BlockClosure,只要接收方为真。

BlockClosure 响应的 whileTrue 消息是如何在 Smalltalk 中没有 while 循环结构的情况下实现的?或者它是用运行时编写的任何语言实现的?

0 投票
2 回答
850 浏览

smalltalk - Smalltalk Web 应用程序开发环境从头开始?

我正在努力在 Windows 上从头开始设置 Smalltalk Web 应用程序环境。这些是我正在寻找的功能:

  • 更喜欢 Squeak 或免费的 ST 环境。必须在windows上稳定工作
  • Seaside 是首选框架
  • MySQL 或 SQLite 作为数据库
  • 不错的 HTML 模板或前端技术 ala CL-WHO

我真的很喜欢这种语言,但我很难找到一个详细的教程,让新手开始在 Smalltalk 上使用 Web 应用程序开发。Django 和 Rails 在这方面都做了很多很好的工作……即使是 Lispers 也有一些不错的新手教程。

0 投票
4 回答
969 浏览

namespaces - Squeak 是否支持命名空间?

因此,我正在考虑将 Smalltalk/Squeak 用于几个爱好/学术兴趣项目,并在尝试阅读该语言时遇到了这篇不错的文章。然而,这一段让我有点傻眼:

“不幸的是,在 Smalltalk 中提供或处理模块/包完全缺乏标准化。一些方言为模块/包提供了非常强大、全面的支持(包括版本控制和编程团队的分布式访问),而其他方言提供很少或在这方面什么都没有。一些方言提供了多个可共享命名空间的健壮实现,而另一些则没有。唯一的共同点是,当提供模块/包或命名空间时,它们被实现为具体对象,方式与类和方法被实现为具体对象。”

所以,我尝试用谷歌搜索它,这显示在 Squeak wiki 上: http ://wiki.squeak.org/squeak/734 。有谁知道这(或类似的东西)现在是否是标准发行版的一部分?

0 投票
2 回答
271 浏览

version-control - 如何在 Smalltalk 中从 Monticello 获取最新版本?

我正在寻找蒙蒂塞洛版本控制系统的“svn 更新”。我使用浏览器搜索新的 mcz 包,但我希望能够使用脚本来完成。

0 投票
4 回答
2365 浏览

fonts - 如何在 Smalltalk Squeak/Pharo 中轻松更改为原生字体

对于每一个新的 Squeak/Pharo 图像,我都会立即将字体更改为一些原生版本。这是很多鼠标点击,我想编写这个过程的脚本。

0 投票
2 回答
402 浏览

inheritance - 为什么例如 Object inheritsFrom: fooobaar 在 Smalltalk 中返回 true?

似乎 GNU Smalltalk 中的 inheritsFrom: 方法对于作为参数发送给它的每个未定义的类名都返回 true。恕我直言,这可能会使程序非常难以调试。查看 Behavior 类中的代码,它看起来像这样:

aClass isNil ifTrue: [^true] 行是罪魁祸首,但我正在寻找一个理智的理由来说明它是以这种方式编码的。(顺便说一下,我是 Smalltalk 世界的新手,并且正在努力学习。)

谢谢。

0 投票
2 回答
281 浏览

gnu - 为什么我不能创建一个新的子类并在同一个句子中使用它?

我想知道为什么以下内容在 GNU Smalltalk 中不起作用:

我期待打印输出类似“a Foo”的东西,但 gst 打印的是“nil”。这看起来是不是有点奇怪?

0 投票
6 回答
668 浏览

java - Squeak 跨平台运行“位相同”是什么意思,而 Java 却没有?

Alan Kay指出“与 Java 不同,[Squeak] 在每台机器上的运行方式都完全相同——这是我们 20 年前发明的”。维基百科页面也提到了这一点:

Squeak 可用于许多平台,并且在一个平台上生成的程序在所有其他平台上运行位相同。

由于具有不同指令集的机器显然不能在本地运行位相同的程序,当有人说 Squeak 在不同的机器上运行位相同的程序时,这是什么意思,而 Java 没有?

我的印象是编译后的 Java 类在任何 JVM 上的任何机器上运行相同,不是这样吗?

0 投票
4 回答
2672 浏览

smalltalk - Smalltalk 和断言

尝试一些 smalltalk + TDD + “良好实践” 我遇到了一个丑陋的块:

如何在 GNU Smalltalk 中进行断言?

我只是在寻找一种简单ifFalse: [Die]的东西

0 投票
10 回答
2388 浏览

testing - (错误)理解 Smalltalk 和 TDD

我正在尝试通过实践来学习 Smalltalk,因此我通过构建一个简单的“Matrix”类来掌握语法和风格。

首先,如果链接到一个好的 Smalltak 教程(尽管这完全是可选的),我将不胜感激,最好是不涉及使用 GUI 的教程(我宁愿键入 my .sts 而不是在层次结构资源管理器中查找代替他们的方法)。

然后,在 TDD 上:对于我正在调用gst-sunit -f matrix.st -f matrix-test.st BaseMatrixTests的这个项目,肯定会有比这更好的方法。有没有?

最后,关于断言:我正在尝试编写一个方法并将断言放入其中,例如:

我怎么能做那种断言?

编辑:明确标记的问题。