Haskell 写 for 循环

沙枣 发布于 2016/10/10 17:57
阅读 503
收藏 0

最近在学 Haskell, 想重写一些算法,但发现其中没有 for, while 循环结构,而我的算法中大量使用了这种结构。

举例下面一个 for 循环,其中有一个标志变量,来控制 for 循环的行为,如果用 Haskell 来写,该怎么办?

func get_str(s string) string {
   flag := 0
   var buf bytesBuffer
   for _, char := range s {
      if flag == 0 {
         if char == '"' {
            flag = 1
         }
      } else {
         if char != '"' {
             buf.WriteRune(char)
         } else {
             flag = 0
         }
      }
   }
   return buf.String()
}



加载中
0
沙枣
沙枣
果断放弃 Haskell 写代码的奢望,研究以下就好了
0
soiamsoNG
soiamsoNG

使用纯Haskell搞算法,不能看结构语言写的算法实现书

Haskell没有for循环的,循环通过递归实现。使用ST monad可以写出比较接近的“结构式” 编程,性能不差但是书写上的累赘比较多。而且Haskell FFI 设计很好,性能部分的代码完全可以交给C,Ada等语言实现。Cable 更是可以管理编译C语言文件。

返回顶部
顶部