问题标签 [gnu-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 投票
2 回答
261 浏览

smalltalk - 伯努利数法输入错误 > 1

我正在尝试实现一个返回 n:th 伯努利数的方法,如下所示:

(我已尽力评论代码)。

但是,对于输入 n > 1,我得到了错误的伯努利数:

  • n = 0 --> 1(正确)。
  • n = 1 --> -1/2(正确)
  • n = 2 --> 2/3(应该是 1/6)
  • n = 3 --> -7/12(应该是 0)
  • n = 4 --> 77/45(应该是-1/30)
  • n = 5 --> 3157/9720 (应该是 0)

我的猜测是我以某种方式错误地实现了内部循环或内部循环,因为输入 n < 2 正常工作(并且 n < 2 完全跳过了内部循环)。我正在使用的伪代码也可能不正确,但我对此表示怀疑,因为我昨天才让它在 COBOL 中工作。binom 方法工作正常,我自己测试过。

即便如此,我还是不明白为什么这不能正常工作。任何帮助表示赞赏。

0 投票
1 回答
345 浏览

smalltalk - 在 gst (GNU smalltalk) 中使用扩展类?

这是这个问题的一个后续问题。

假设我已经设法使用新方法“square”扩展了 Integer 类。现在我想使用它。

从文件中调用新方法很容易:

在这里,我可以直接调用$ gst myprogram.stbash,它会打印 25。但是如果我想从 GNU smalltalk 应用程序内部使用该方法怎么办?像这样:

这可能与图像有关,我不确定。本教程说我可以编辑 ~/.st/kernel/Builtins.st 文件来编辑加载到内核中的文件,但我没有这样的文件。

0 投票
2 回答
212 浏览

smalltalk - Smalltalk 中与重复的组合

我需要生成 N 个数字的所有可能组合,包括重复。

问题输入:我有 N 个单元格,我可以在每个单元格中的区间 0 到:9 中放置一个数字。

错误的解决方案(N = 4):

不包括 #(0 0 0 0) 、 #(1 1 1 1) 、 #(2 2 2 2) 等。

预期输出(为简洁起见,N = 2,范围为 1-4):

0 投票
2 回答
1614 浏览

smalltalk - 将 GNU Smalltalk 项目导入 Pharo?

我有大约 1800 行 GNU Smalltalk 代码,我想将其引入 Pharo。我已经开始按类、逐个选择器来做这件事,但这非常耗时且乏味。

有没有办法批量导入项目?我可以很容易地预先调整 GST 源文件的格式,vi使其更像 Pharo。

我考虑过的另一件事是复制一个“起始”.mcz文件,感受一下文件的格式source.st,然后source.st用 file cats 和vi. 但是还有一个snapshot.bin文件,其中似乎也有源代码,这使得这条道路变得艰难。似乎应该有一个更简单的方法。我已经用不同的短语搜索了它,但没有找到任何东西。

0 投票
0 回答
943 浏览

smalltalk - Smalltalk - 具有多个参数的方法

我正在努力弄清楚如何定义接受多个参数/参数的方法以及如何调用这些方法。

例如,假设我有一个方法doSomething,它构成了一个类的一部分,其实例名为myInstance.

在 Java 中:

类中的声明:void doSomething(int param1, int param2) {...};

调用方法:myInstance.doSomething(1, 10);

我将如何在 Smalltalk 中声明然后使用类似的东西?

0 投票
2 回答
1520 浏览

import - 在 GNU Smalltalk 中导入文件

我是 GNU Smalltalk 的新手。我知道在大多数编程语言中,都有一个//import命令可以让一个源文件访问另一个源文件的内容。我的问题是,如何在 GNU Smalltalk 中将一个文件导入另一个文件?任何帮助,将不胜感激。谢谢!#includerequire

0 投票
2 回答
861 浏览

io - Smalltalk stdin nextLine 用于固定数量的输入行

我目前正在尝试获取表单的 3 条特定输入行:

XX.XX (float) XX (1-3 位整数) XX (1-3 位整数)

以下是我拥有的当前代码:

我已经在这进行了 3-4 小时的编程、搜索互联网等。我是一个超级初学者,自学 Smalltalk,所以我想看看为什么 nextLine 没有正确读取输入。以下是输入标准输入的示例输入,以及成绩单显示检查的结果:

标准输入上的示例输入:

标准输出上的输出:

当我只执行以下代码时,我看到所有 3 个输入由 <10> 分隔,我认为这是回车或换行。

样本输入(标准输入):

输出(标准输出):

所以似乎由于某种原因,代码的第一行是唯一得到的stdin nextLine .,但其余的只得到最后 3 个字符(小数点和小数点后的 2 个数字)。我不确定为什么会这样。

我试过nextAvailable, flush, commit, stdin close, 和其他一些方法,都无济于事。我的一个想法是解决这个问题是只得到整体stdin contents,除以 <10>,然后将每个“部分”保存到 3 个不同的变量,但我想了解更多关于如何stdin nextLine工作并更好地理解这也有关系stdin contentsstdin nextLine鉴于我们知道只有 3 个输入,有没有好的方法只做3 次?

0 投票
0 回答
972 浏览

command-line-interface - GNU Smalltalk 命令行参数解析解释/文档

GNU Smalltalk 安装附带的脚本使用以下代码来解析命令行参数:

困扰我的是:

我不明白那里发生了什么。我知道:

返回传递给命令行的字符串数组,但在这种情况下,看起来方法正在使用参数 '-h|--help --usage --version' 调用?我想知道如何将此字符串与参数数组进行比较,以及如何提取命令行开关?指向文档或解释的链接将非常有价值。

0 投票
2 回答
211 浏览

smalltalk - Smalltalk中的Array和Literal Array有什么区别?

除了大小。

例如:

0 投票
1 回答
405 浏览

smalltalk - 如何使用多行输入来创建我的游戏?

所以,我有一种方法可以为创建游戏的其他方法创建所有实例变量,我知道如何单独执行它们,但是从一种方法中找到如何执行它真的很难。

我需要从必须单独处理每一行的字符串中读取数据。

我正在使用 Pharo。

类游戏,一切都在一个游戏类中。

游戏:实例变量:'rol col'。使用实例方法。