【问题标题】:Printing an ASCII table [closed]打印 ASCII 表 [关闭]
【发布时间】:2021-02-15 17:24:56
【问题描述】:

所以我用 C 编写了这段代码来打印 ASCII 表,但有人告诉我使用 SML 来完成这个特定任务

这是我当前的 C 代码:

// Program to print ASCII table.

#include <stdio.h>
int main()
{
    unsigned char count;
    for(count=32; count< 255; count+=1)
    {
        printf("  %3d - %c",count,count);
        if(count % 6==0)
            printf("\n");
    }
    return 0;
}

我将如何在 SML 中执行此操作?我搜索了互联网,但没有运气!

【问题讨论】:

  • SO 不是免费的代码翻译服务。一旦您努力自己解决问题并遇到困难,我们非常乐意提供帮助。发生这种情况时,您可以解释您遇到的问题,包括原始代码和您为转换它所做的努力,并提出与该代码相关的特定问题,我们可以尝试提供帮助。如果您花一些时间在tour 和阅读help center 页面以了解该网站的工作原理,然后再开始发布,您会发现您在这里的体验会好很多。

标签: sml smlnj


【解决方案1】:

我将如何在 SML 中执行此操作?

首先,您将学习 SML。 ;-)

  • 您可以使用List.tabulate 而不是for(count=32; count&lt; 255; count+=1)
  • 在 SML 中,printf 被认为是 big gun,所以也许坚持使用 print
  • 您可以使用strchr 代替%c,例如str (chr 65) = "A"
  • 你会得到Int.toString,而不是%03d,但你必须创建自己的pad函数,耶!
  • 要将函数f 应用于列表的每个元素并丢弃返回值(如果您只对f 的副作用感兴趣,这很有意义),您可以使用List.app 而不是List.map

入门模板是:

val table = List.tabulate (256 - 32, fn count => str (chr (count + 32)))
val _ = List.app (fn cstr => print "Ceci n'est pas une ASCII table\n") table

尝试并做出合理的尝试来解决此任务,并为您自己的 StackOverflow 问题提供答案。

【讨论】:

    猜你喜欢
    • 2011-08-20
    • 2017-04-27
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多