Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Functional programming 如何将值转换为字符串?_Functional Programming_Purescript - Fatal编程技术网

Functional programming 如何将值转换为字符串?

Functional programming 如何将值转换为字符串?,functional-programming,purescript,Functional Programming,Purescript,我正在尝试将一个不是字符串的值打印到控制台 在本例中,它是一个整数数组 如何将允许这种行为的数组或任何其他值转换为字符串 module Main where import Prelude import Control.Monad.Eff.Console import Data.Array main = log [1, 2, 3, 4, 5] 当我运行上述程序时,编译器会出现以下错误: Could not match type Array Int with type St

我正在尝试将一个不是字符串的值打印到控制台

在本例中,它是一个整数数组

如何将允许这种行为的数组或任何其他值转换为字符串

module Main where

import Prelude
import Control.Monad.Eff.Console
import Data.Array


main = log [1, 2, 3, 4, 5]
当我运行上述程序时,编译器会出现以下错误:

Could not match type

  Array Int

  with type

  String


while checking that type Array t0 is at least as general

as type String while checking that expression

  [ 1, 2, 3, 4, 5 ]

has type String in value declaration main

where t0 is an unknown type

具体如何将数组转换为字符串取决于需要对该字符串执行什么操作。也就是说,这取决于谁将使用该字符串以及如何使用该字符串。从将其转换为字符串“数组”到二进制base64编码,各种可能性都有

如果您只需要出于调试或教育目的将其打印出来,那么使用。有一个为数组定义的该类型类的实例,因此该函数将在您的情况下工作

main = log $ show [1,2,3,4,5]
如果您想使用快捷方式,请使用功能
logShow
,该功能可以实现上述功能:

main = logShow [1,2,3,4,5]
出于调试目的打印内容的另一种方法是。此函数不需要
Show
实例,因为它使用本机JavaScript
console.log
,它只会转储值的原始JSON表示:

main = traceAny [1,2,3,4,5] \_ -> pure unit

但要注意:此函数仅用于调试,不要将其用于可靠的输出。

如何将数组转换为字符串取决于需要对该字符串执行的操作。也就是说,这取决于谁将使用该字符串以及如何使用该字符串。从将其转换为字符串“数组”到二进制base64编码,各种可能性都有

如果您只需要出于调试或教育目的将其打印出来,那么使用。有一个为数组定义的该类型类的实例,因此该函数将在您的情况下工作

main = log $ show [1,2,3,4,5]
如果您想使用快捷方式,请使用功能
logShow
,该功能可以实现上述功能:

main = logShow [1,2,3,4,5]
出于调试目的打印内容的另一种方法是。此函数不需要
Show
实例,因为它使用本机JavaScript
console.log
,它只会转储值的原始JSON表示:

main = traceAny [1,2,3,4,5] \_ -> pure unit

不过要小心:此函数仅用于调试,不要将其用于可靠的输出。

您是否绝对确定您尝试使用的是
logShow
而不是
log
?默认情况下,
数组
没有
Show
的实例。哎呀,事实上有。我刚在网上试过,结果它被编译了。@RegisKuckaertz是的,有。自己试试看:上面的程序编译并运行。另外,即使没有实例,错误消息也会有所不同:它会说“没有实例
Show(Array Int)
blah blah blah blah blah”。是的,刚刚测试过。谢谢更正的初衷是使用日志。我编辑了我的答案以反映这一点。您是否绝对确定您正在尝试使用
logShow
而不是
log
?我认为默认情况下
Array
没有
Show
的实例。哎呀,事实上有。我刚在网上试过,结果它被编译了。@RegisKuckaertz是的,有。自己试试看:上面的程序编译并运行。另外,即使没有实例,错误消息也会有所不同:它会说“没有实例
Show(Array Int)
blah blah blah blah blah”。是的,刚刚测试过。谢谢更正的初衷是使用日志。我编辑了我的答案以反映这一点。