草庐IT

haskell-tagsoup

全部标签

android - Android上的Haskell解释器?

已结束。这个问题是off-topic.它目前不接受答案。想要改进这个问题?Updatethequestion所以它是on-topic堆栈溢出。关闭9年前。Improvethisquestion是否有可以在Android上安装的Haskell解释器(带有标准库)?以便拥有Android设备的人可以在Android设备上做一些Haskell练习:在Haskell中编写和运行一些示例代码。 最佳答案 Hugs是用C语言编写的,非常便携。应该可以移植到安卓。 关于android-Android上

memory - Haskell 堆栈溢出

我正在编写一个遗传算法来生成字符串“helloworld”。但是当n大于等于10,000时,evolve函数会产生堆栈溢出。moduleGeneticswhereimportData.List(sortBy)importRandom(randomRIO)importControl.Monad(foldM)classGenegwhere--Howidealisthegenefrom0.0to1.0?fitness::g->Float--Howdoesagenemutate?mutate::g->IOg--Howmanyspecieswillbeexplored?species::[g]-

memory - Haskell 堆栈溢出

我正在编写一个遗传算法来生成字符串“helloworld”。但是当n大于等于10,000时,evolve函数会产生堆栈溢出。moduleGeneticswhereimportData.List(sortBy)importRandom(randomRIO)importControl.Monad(foldM)classGenegwhere--Howidealisthegenefrom0.0to1.0?fitness::g->Float--Howdoesagenemutate?mutate::g->IOg--Howmanyspecieswillbeexplored?species::[g]-

haskell - 为什么这里的早期术语不被垃圾收集?

如果我定义KolakoskiSequence作为kolakoski::()->[Int]kolakoski()=1:2:helper()wherehelper()=2:concat(zipWithreplicate(helper())(cycle[1,2]))并找到第500,000,000项kolakoski()!!500000000我发现当使用ghc-O编译时,这会很快消耗大量内存。但是在关闭优化的情况下,它几乎没有使用任何东西。哪个优化导致了这个问题,我该如何关闭它? 最佳答案 让我们比较实际数字。如果在没有优化的情况下运行,您

haskell - 为什么这里的早期术语不被垃圾收集?

如果我定义KolakoskiSequence作为kolakoski::()->[Int]kolakoski()=1:2:helper()wherehelper()=2:concat(zipWithreplicate(helper())(cycle[1,2]))并找到第500,000,000项kolakoski()!!500000000我发现当使用ghc-O编译时,这会很快消耗大量内存。但是在关闭优化的情况下,它几乎没有使用任何东西。哪个优化导致了这个问题,我该如何关闭它? 最佳答案 让我们比较实际数字。如果在没有优化的情况下运行,您

haskell - 存在量化类型的内存占用和相关优化技术

考虑以下利用存在的数据模型:dataNodea=Nodea(MapTypeRepAnyNode)dataAnyNode=foralla.Showa=>AnyNodea标准类型的内存占用规则havebeenexplainedpreviously.现在,存在类型的规则是什么,例如AnyNode?是否有任何优化技术,例如使用unsafeCoerce的一些变通方法可以逃避存在性声明?我问这个是因为类似于Node的类型将被放置在高度内存密集型库的成本中心,所以内存占用就是全部,这就是为什么最肮脏的黑客受到欢迎的原因。 最佳答案 ghc-dat

haskell - 存在量化类型的内存占用和相关优化技术

考虑以下利用存在的数据模型:dataNodea=Nodea(MapTypeRepAnyNode)dataAnyNode=foralla.Showa=>AnyNodea标准类型的内存占用规则havebeenexplainedpreviously.现在,存在类型的规则是什么,例如AnyNode?是否有任何优化技术,例如使用unsafeCoerce的一些变通方法可以逃避存在性声明?我问这个是因为类似于Node的类型将被放置在高度内存密集型库的成本中心,所以内存占用就是全部,这就是为什么最肮脏的黑客受到欢迎的原因。 最佳答案 ghc-dat

memory - 加速 Haskell 并发

MVar,TVar,IORef,...我无法加速thunk问题(我认为)。(我原来的问题是线程代码,我做了n次“forkIO”调用“addMany”;但我认为我的问题出在“shW”函数上)让下一个代码:{-#LANGUAGEBangPatterns#-}importControl.ConcurrentimportControl.MonadimportSystem.Environment(getArgs)importData.IntimportData.IORef--"i"times,add"n"foreachIORef(in"a")addMany::[IORefInt64]->Int6

memory - 加速 Haskell 并发

MVar,TVar,IORef,...我无法加速thunk问题(我认为)。(我原来的问题是线程代码,我做了n次“forkIO”调用“addMany”;但我认为我的问题出在“shW”函数上)让下一个代码:{-#LANGUAGEBangPatterns#-}importControl.ConcurrentimportControl.MonadimportSystem.Environment(getArgs)importData.IntimportData.IORef--"i"times,add"n"foreachIORef(in"a")addMany::[IORefInt64]->Int6

arrays - 如何在 Haskell 中打印列表的内存地址

我正在研究一些编程语言如何为结构化数据分配内存(在本例中我正在研究数组)。我正在创建数组,如图所示here在第3节。importData.Array.IOarr而我要做的是打印每个元素的内存地址,如下所示:ArrayStart:|--ShowswherethearrayitselfisArray1:|--MemoryaddressofthefirstelementArray2:|我的问题是我不知道如何在Haskell中获取元素的内存地址值。有没有类似于Python的id(object)或Ruby的object.object_id的函数? 最佳答案