【问题标题】:How is the newline, tab characters represented in purescript?purescript 中如何表示换行符、制表符?
【发布时间】:2019-04-05 09:08:38
【问题描述】:

例如。 我如何打印出这样的东西:

showEntry entry = entry.lastName ++ "\t" ++
                  entry.firstName ++ "\t" ++
                  entry.phone
print(showEntry {lastName: 'Doe', firstName: 'John', phone: '555-555-5555'})

这只是打印出Doe\tJohn\t555-555-5555

【问题讨论】:

  • 你是如何运行这个函数的?如果您使用psciShow 实例将转义制表符,这就是您在输出中看到\t 的原因。
  • 是的,我正在使用psci。这就解释了。我想你在书中某处提到了这一点。我可以确保“\t”在打印过程中没有被转义,比如阻止 Show 实例的标准行为吗?或者完全使用不同的函数而不是print
  • print 的调用被烘焙到psci。您可以使用不安全的 FFI 原语来调用 console.logforeign import unsafeTracing "function tracing(x) { console.log(x); return x; }" :: forall a. a -> a

标签: printing tabstop purescript


【解决方案1】:

问题基于旧版本的语言和相关工具。如今,这是您可以做的。

使用来自purescript-console (https://pursuit.purescript.org/packages/purescript-console/4.2.0/docs/Effect.Console#v:log) 的log

> import Effect.Console
> log "Hello\tSailor!"
Hello   Sailor
unit

>

REPL (purs repl) 隐式使用show 将值编码为字符串。为了解决这个问题,可以使用日志效果(正如 Phil Freeman 在他的评论中提到的,尽管使用 log 并没有什么不安全的地方)。

【讨论】:

    猜你喜欢
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 2018-11-17
    • 2019-11-20
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    相关资源
    最近更新 更多