函数式编程语言Crumb简述

嵌入式技术

1368人已加入

描述

出品 | OSC开源社区(ID:oschina2013)

Crumb 是最新开源的编程语言,发布后在 Reddit 的编程版块引起了广泛讨论。

 

正如标题所言,Crumb 是一门函数式编程语言,且没有 “关键字”,一切皆函数 (0 keywords, everything is a function.)。其他特性包括提供垃圾回收 (GC)、动态类型、具有简洁的语法和详细的标准库。

示例代码

 

table = (map (range 10) {_ y ->
  <- (map (range 10) {item x ->
    <- (multiply (add x 1) (add y 1))
  })
})
(loop 100 {i -> 
  i = (add i 1)
  
  (if (is (remainder i 15) 0) {
    (print "fizzbuzz
")
  } {
    (if (is (remainder i 3) 0) {
      (print "fizz
")
    } {
      (if (is (remainder i 5) 0) {
        (print "buzz
")
      } {
        (print i "
")
      })
    })
  })
})

 

实现斐波那契数列

 

// use a simple recursive function to calculate the nth fibonacci number
fibonacci = {n ->
  <- (if (is n 0) {<- 0} {
    <- (if (is n 1) {<- 1} {
      <- (add 
        (fibonacci (subtract n 1)) 
        (fibonacci (subtract n 2))
      )
    })
  })
}

(until "stop" {state n ->
  (print (add n 1) "-" (fibonacci (add n 1)) "
")
})
更多示例代码:https://github.com/liam-ilan/crumb/tree/main/examples

 

标准库包括:IO、Comparisons、Logical Operators、Arithmetic 等。

Crumb 已在 GitHub 上开源,目前 200+ stars。

编程语言

 审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分