小编Sax*_*ute的帖子

为什么没有明确类型的Idris片段类型检查?

我刚刚开始学习Idris,我正在阅读" 使用Idris进行类型驱动开发 "一书.第二章的示例练习之一是编写一个函数,给定一个字符串,该函数确定该字符串中单词的平均长度.我的解决方案如下:

average : String -> Double
average phrase =
  let werds = words phrase
      numWords = length werds
      numChars = the Nat (sum (map length werds)) in
  cast numChars / cast numWords
Run Code Online (Sandbox Code Playgroud)

但是,由于这numChars条线,我在解决这个问题时遇到了很多麻烦.出于某种原因,除非我明确使用类型,否则不会进行类型检查the Nat.错误说明:

Can't disambiguate since no name has a suitable type:
        Prelude.List.length, Prelude.Strings.length
Run Code Online (Sandbox Code Playgroud)

这对我来说并没有多大意义,因为无论使用哪个定义length,返回类型都是Nat.这一点得到了以下事实的支持:在REPL中可以无错误地完成相同的操作序列.这是什么原因?

functional-programming type-inference type-conversion idris

10
推荐指数
1
解决办法
188
查看次数

是否可以按池检查堆内存使用情况?

我一直在努力优化一个有很多内存泄漏问题的程序.泄漏现在已经消失,但主要GC的偶尔运行仍然对PS老一代产生了良好的影响.我知道我可以通过运行时检查基本的整体内存信息,但是可以在程序中检查PS eden,PS幸存者和PS旧的使用情况吗?

java optimization memory-leaks heap-memory

7
推荐指数
1
解决办法
195
查看次数