Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.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
Parsing 通过列表中的指针定义解析器或者递归地传递列表会更有效吗?_Parsing_Haskell_Recursion_Lazy Evaluation - Fatal编程技术网

Parsing 通过列表中的指针定义解析器或者递归地传递列表会更有效吗?

Parsing 通过列表中的指针定义解析器或者递归地传递列表会更有效吗?,parsing,haskell,recursion,lazy-evaluation,Parsing,Haskell,Recursion,Lazy Evaluation,在C/C++中,当解析大量字符时,我们使用指针和类似的东西来节省内存。哈斯克尔也会这样吗?我在Haskell中见过一些解析器实现,它们接受/返回“要解析的剩余字符”——编译器是否处理了大量的内存?提前谢谢 是的,哈斯克尔也会使用同样的想法;然而,使用GHC很容易,因为所有(装箱的)值都是指针。所以你不需要做任何特殊的事情来利用这个常见的技巧。。。只需编写代码。是的,Haskell也会使用相同的思想;然而,使用GHC很容易,因为所有(装箱的)值都是指针。所以你不需要做任何特殊的事情来利用这个常见的

在C/C++中,当解析大量字符时,我们使用指针和类似的东西来节省内存。哈斯克尔也会这样吗?我在Haskell中见过一些解析器实现,它们接受/返回“要解析的剩余字符”——编译器是否处理了大量的内存?提前谢谢

是的,哈斯克尔也会使用同样的想法;然而,使用GHC很容易,因为所有(装箱的)值都是指针。所以你不需要做任何特殊的事情来利用这个常见的技巧。。。只需编写代码。

是的,Haskell也会使用相同的思想;然而,使用GHC很容易,因为所有(装箱的)值都是指针。所以你不需要做任何特殊的事情来利用这个常见的技巧。。。只需编写代码。

没有这么大的内存。当“要解析的剩余字符”被传递时,实际上传递的是指向列表的指针,而不是列表部分的副本。没有如此大的内存量被传递。当传递“要分析的剩余字符”时,实际传递的是指向列表的指针,而不是列表部分的副本。装箱值?是否有任何文档可用于设计haskell代码以符合此要求,以便ghc能够利用它?@AthanClark默认情况下,您处理的所有内容都是装箱的。您必须努力工作(并启用语言扩展和导入名为GHC的低级模块)才能获得一个未装箱的值。@AthanClark…也就是说,没有关于如何生成装箱值的文档,因为这很容易做到。所有的文档都是关于如何跳出常规,启用疯狂的东西。啊,好的。太棒了,我期待着更多地了解haskell的实现技术和优势设计。非常感谢。盒装价值观?是否有任何文档可用于设计haskell代码以符合此要求,以便ghc能够利用它?@AthanClark默认情况下,您处理的所有内容都是装箱的。您必须努力工作(并启用语言扩展和导入名为GHC的低级模块)才能获得一个未装箱的值。@AthanClark…也就是说,没有关于如何生成装箱值的文档,因为这很容易做到。所有的文档都是关于如何跳出常规,启用疯狂的东西。啊,好的。太棒了,我期待着更多地了解haskell的实现技术和优势设计。非常感谢。