Questions tagged «functional-programming»

1
类型系统可防止与惰性相关的内存泄漏?
Haskell中性能问题的主要根源可能是某个程序无意间建立了一个无穷大的深度-这在评估时会导致内存泄漏和潜在的堆栈溢出。经典示例是sum = foldr (+) 0在Haskell中定义的。 是否有任何类型系统在使用惰性语言的程序中静态强制缺少此类重击? 似乎与使用类型系统扩展来证明其他静态程序属性(例如某些类型的线程安全性或内存安全性)的难度在相同的数量级上。


2
如何选择功能字典数据结构?
我已经阅读了一些有关以下数据结构的信息: Bagwell的理想哈希尝试 Larson的动态哈希表 红黑树 帕特里夏树 ...我敢肯定还有很多其他人。对于每个人都更适合的方式,或者为什么我会选择一个而不是另一个,我很少见。因此,以下是这些方面的一些问题: 重要的是要了解哪些功能词典数据结构? 这些方法的优缺点是什么? 什么时候使用更命令性的数据结构有意义? 数字2和3是最重要的数字。:-)

1
Stratego编程语言的理论限制是什么?
Stratego是一种编程转换语言/重写DSL。 Anthony Sloane已经完成了一些在Scala上运行的实现的工作。 Stratego作为功能语言的理论限制是什么?(不考虑实现)。有人可以在Stratego中写一个适用的命令复合器吗?

3
基本递归函数的类别是否与Fetus证明终止的函数的类别等效?
如果您还没有听说过Foetus,可以在这里继续阅读。它使用“调用矩阵”和“调用图”系统查找函数中所有递归调用的“递归行为”。为了表明函数终止,它表明对函数进行的递归调用的所有递归行为都遵循一定的“字典顺序”。它的终止检查器允许所有原始递归函数以及诸如Ackermann函数之类的函数。基本上,它允许多参数原始递归。这基本上也是Agda的终止检查器;我相信Coq也有一些类似的功能,尽管也许更通用。 通过阅读DA Turner的论文“ Total Functional Programming”。他解释说,他提出的语言将能够表达Godel研究的System T中看到的所有“原始递归功能”。他继续说,该系统“已知包括每个递归函数,其整体可以通过一阶逻辑证明”。 胎儿剂量允许所有原始递归功能吗?如果可以,那么是否允许不是原始递归函数的函数?可以提供答案吗?(因为我只是感兴趣,所以这实际上不是必需的;只是一些阅读有关此事的婚姻会很好) 额外的问题:基本递归函数在组合器方面有一个非常简洁的定义:类型S和K(不能表示定点组合器),零,后继函数和迭代函数;而已。还有其他更通用的语言,它们的定义如此简洁,并且所有表达式都以这些语言终止吗?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.