问题标签 [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.
smalltalk - Smalltalk 的 whileTrue 消息是如何在幕后实现的?
我正在尝试自学 Smalltalk。一个教程有这个while循环的例子:
据我了解,whileTrue 是发送到 BlockClosure 的消息,告诉接收方 BlockClosure 运行作为参数给出的 BlockClosure,只要接收方为真。
BlockClosure 响应的 whileTrue 消息是如何在 Smalltalk 中没有 while 循环结构的情况下实现的?或者它是用运行时编写的任何语言实现的?
smalltalk - Smalltalk Web 应用程序开发环境从头开始?
我正在努力在 Windows 上从头开始设置 Smalltalk Web 应用程序环境。这些是我正在寻找的功能:
- 更喜欢 Squeak 或免费的 ST 环境。必须在windows上稳定工作
- Seaside 是首选框架
- MySQL 或 SQLite 作为数据库
- 不错的 HTML 模板或前端技术 ala CL-WHO
我真的很喜欢这种语言,但我很难找到一个详细的教程,让新手开始在 Smalltalk 上使用 Web 应用程序开发。Django 和 Rails 在这方面都做了很多很好的工作……即使是 Lispers 也有一些不错的新手教程。
namespaces - Squeak 是否支持命名空间?
因此,我正在考虑将 Smalltalk/Squeak 用于几个爱好/学术兴趣项目,并在尝试阅读该语言时遇到了这篇不错的文章。然而,这一段让我有点傻眼:
“不幸的是,在 Smalltalk 中提供或处理模块/包完全缺乏标准化。一些方言为模块/包提供了非常强大、全面的支持(包括版本控制和编程团队的分布式访问),而其他方言提供很少或在这方面什么都没有。一些方言提供了多个可共享命名空间的健壮实现,而另一些则没有。唯一的共同点是,当提供模块/包或命名空间时,它们被实现为具体对象,方式与类和方法被实现为具体对象。”
所以,我尝试用谷歌搜索它,这显示在 Squeak wiki 上: http ://wiki.squeak.org/squeak/734 。有谁知道这(或类似的东西)现在是否是标准发行版的一部分?
version-control - 如何在 Smalltalk 中从 Monticello 获取最新版本?
我正在寻找蒙蒂塞洛版本控制系统的“svn 更新”。我使用浏览器搜索新的 mcz 包,但我希望能够使用脚本来完成。
fonts - 如何在 Smalltalk Squeak/Pharo 中轻松更改为原生字体
对于每一个新的 Squeak/Pharo 图像,我都会立即将字体更改为一些原生版本。这是很多鼠标点击,我想编写这个过程的脚本。
inheritance - 为什么例如 Object inheritsFrom: fooobaar 在 Smalltalk 中返回 true?
似乎 GNU Smalltalk 中的 inheritsFrom: 方法对于作为参数发送给它的每个未定义的类名都返回 true。恕我直言,这可能会使程序非常难以调试。查看 Behavior 类中的代码,它看起来像这样:
aClass isNil ifTrue: [^true] 行是罪魁祸首,但我正在寻找一个理智的理由来说明它是以这种方式编码的。(顺便说一下,我是 Smalltalk 世界的新手,并且正在努力学习。)
谢谢。
gnu - 为什么我不能创建一个新的子类并在同一个句子中使用它?
我想知道为什么以下内容在 GNU Smalltalk 中不起作用:
我期待打印输出类似“a Foo”的东西,但 gst 打印的是“nil”。这看起来是不是有点奇怪?
smalltalk - Smalltalk 和断言
尝试一些 smalltalk + TDD + “良好实践” 我遇到了一个丑陋的块:
如何在 GNU Smalltalk 中进行断言?
我只是在寻找一种简单ifFalse: [Die]
的东西
testing - (错误)理解 Smalltalk 和 TDD
我正在尝试通过实践来学习 Smalltalk,因此我通过构建一个简单的“Matrix”类来掌握语法和风格。
首先,如果链接到一个好的 Smalltak 教程(尽管这完全是可选的),我将不胜感激,最好是不涉及使用 GUI 的教程(我宁愿键入 my .st
s 而不是在层次结构资源管理器中查找代替他们的方法)。
然后,在 TDD 上:对于我正在调用gst-sunit -f matrix.st -f matrix-test.st BaseMatrixTests
的这个项目,肯定会有比这更好的方法。有没有?
最后,关于断言:我正在尝试编写一个方法并将断言放入其中,例如:
我怎么能做那种断言?
编辑:明确标记的问题。