继承我的代码:
factorial :: Integer -> Integer
factorial n = product [1..n]
main = print(factorial 50)
Run Code Online (Sandbox Code Playgroud)
我没有编译任何错误,但是当我运行编译的代码时
runhaskell test
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
test:1:1: lexical error at character '\DEL'
Run Code Online (Sandbox Code Playgroud)
是什么造成的?我该如何解决这个问题?
更新
我做了一个文件的hexdump:
$ hexdump -x test.hs
Run Code Online (Sandbox Code Playgroud)
得到了
0000000 6166 7463 726f 6169 206c 3a3a 4920 746e
0000010 6765 7265 2d20 203e 6e49 6574 6567 0a72
0000020 6166 7463 726f 6169 206c 206e 203d 7270
0000030 646f 6375 2074 315b 2e2e 5d6e 6d0a 6961
0000040 206e 203d 7270 6e69 2874 6166 7463 726f
0000050 6169 …Run Code Online (Sandbox Code Playgroud) 基本上我正在尝试扫描字符串以查找包含字符的单词并计算找到具有该字符的单词数.我只是想知道是否有办法检查一个单词是否包含一个字符.
到目前为止的代码如下:
let w = "Hello i'm kind of new to Haskell, but so far it's great!"
length $ filter (== 'n') w
Run Code Online (Sandbox Code Playgroud)
这会在字母n上出现任何问题,如果在一个单词中有2个n,则会将其计为2而不是1,我基本上想要检查单词是否包含字母输入然后获取长度.
谢谢
我没有生成二进制文件ghc -O2 --make Test.hs,只有.o和.hi文件.Test.hs包含一个main :: IO ()函数并具有模块名称Test.
链接器不表现吗?我怎样才能解决这个问题?我在OSX上使用GHC 7.8.3,拥有Apple LLVM 5.0(clang-500.2.79)(基于LLVM 3.3svn)目标:x86_64-apple-darwin13.4.0
提前感谢您的任何提示
从这里了解到,功能的定义enumFromThenTo是
enumFromThenTo :: a -> a -> a -> [a]
enumFromThenTo x1 x2 y = map toEnum [fromEnum x1, fromEnum x2 .. fromEnum y]
Run Code Online (Sandbox Code Playgroud)
但是,当我用下面的代码测试函数时:
import GHC.Enum
myEnumFromThenTo :: Enum a => a->a->a->[a]
myEnumFromThenTo x1 x2 y = map toEnum [fromEnum x1, fromEnum x2 .. fromEnum y]
xs1 :: [Float]
xs1 = myEnumFromThenTo 1 3 10
xs2 :: [Float]
xs2 = enumFromThenTo 1 3 10
-- -- | Used in Haskell's translation of @[n,n'..m]@.
-- enumFromThenTo …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习Haskell,在尝试编写一个简单的函数时遇到了一个问题.使用以下代码:
squarenumber x = if x<10
then x^2
else return "Input is too large, please input a value less than 10."
Run Code Online (Sandbox Code Playgroud)
问题似乎与else功能的一部分有关.如何修改此函数,以便在输入大于10时返回一个字符串?
我有一个程序链接-rtsopts和调用,+RTS -s并在我得到这个时间:
INIT time 0.000s ( 0.001s elapsed)
MUT time 4.047s ( 9.694s elapsed)
GC time 0.578s ( 0.514s elapsed)
RP time 0.000s ( 0.000s elapsed)
PROF time 0.000s ( 0.004s elapsed)
EXIT time 0.000s ( 0.000s elapsed)
Total time 4.625s ( 10.209s elapsed)
Run Code Online (Sandbox Code Playgroud)
这个程序运行了大约10秒钟.它与线程RTS相关联但是它使用了-N1我不明白为什么在挂钟时间和CPU时间之间首先会有区别.
我刚刚在GHC用户指南中找到了这个:
接下来是CPU时间和挂钟时间,按运行时系统当时的操作细分.
那么,CPU时间是否低于挂钟时间有什么意义呢?
注意:我的计算机在执行我的程序期间没有做任何艰苦的工作,当然没那么多..这就是为什么我很困惑并担心我的程序行为不端.
更新:我想我可能找到了罪魁祸首:RTS是否计算IO的CPU时间?如果它没有,那可能是原因,有大量的写作.
我正在尝试安装network和old-time使用cabal-install。当我尝试安装时,它失败并显示:
setup.exe: The package has a './configure' script. This requires a
Unix compatibility toolchain such as MinGW+MSYS or Cygwin.
Run Code Online (Sandbox Code Playgroud)
我确实有MinGW,实际上是与GHC一起分发的MinGW。
我还将bin文件夹添加到了PATH中。
我怎样才能解决这个问题?实际运行配置文件的工具是什么?也许我需要得到它?
使用Cabal库的1.22.0.0
版本的GHC 7.10.1 x64 cabal安装版本1.22.0.0
。
而且我实际上是在Windows 10专业版预览版内部版本10130上。我在7和8.1上做了很多时间,但从未实现。我无法想象为什么,但是也许它起了作用?
我正在玩Haskell并编写文件.这是一段代码,对于[0..255]中的每个"蓝色",在[0..255]中使用"红色"和"绿色"在PPM中创建图像.它在文件夹中生成所有图像.
这个小程序使我的计算机崩溃购买超过5 gB的内存,我不知道为什么.我要他做的事对我来说似乎很简单,生成的图像占用的总空间是 - 200 mB ......并且不明白为什么内存会爆炸.
这是代码:
import System.Directory
import Data.Colour.SRGB
import Data.List.Split
gridColours = [[RGB 255 0 0, RGB 0 255 0], [RGB 0 0 255, RGB 0 0 0]]
gridColours2 b = chunksOf 256 [RGB r g b| r <- [0..255], g <- [0..255]]
dimensions l = (length . head $ l, length l)
coupleToList (a,b) = [a,b]
genDataLines list = unwords . (map showColour) . concat $ list
genDims list = unwords . (map show) . …Run Code Online (Sandbox Code Playgroud) Void除此之外,该类型没有值undefined.GHC如何undefined :: Void在运行时代表?
我有以下问题:我定义了一个类型类,并希望将此类的类型的元组声明为实例.但我不知道如何让GHC接受这个声明.这是一个非常简单的例子:
class Test a where
elm :: a
Run Code Online (Sandbox Code Playgroud)
并且知道元组我想要做类似的事情
instance (Test a, Test b) => Test (a,b) where
elm = (elm, elm) :: (a,b)
Run Code Online (Sandbox Code Playgroud)
(实际上,我想对与矢量空间相对应的更多花哨类型类做类似的事情.)
怎么做到这一点?在此先感谢您的任何建议!