返回 登录
0

Coconut赋予Python函数式编程语法

图片描述

长期以来,很多Python的粉丝都强烈要求Python加入函数式编程的特性。现在他们可以不必切换到别的实现版本,就可以获得这项特性。

Coconut是一个最近开发出的Python方言,提供了像函数式编程语言Haskell和Scala那样的语法。使用Coconut编写的程序可以编译成普通的Python代码,所以可以直接使用原来的Python解释器运行。

Coconut加入了很多特性,使得Python实现的一些事情更加典雅和可读。比如,“管道风格的编程”,允许函数的变量可以分开地传递给函数,比如,print("Hello, world!")可以写成"Hello, world!" |> print。Python的Lambda表达式或匿名函数可以写的更加明确,比如(x) -> x**2而不是原来的lambda x: x**2

有一个很多其他的现代语言支持,但是原生的Python不支持的特性,是正则匹配。变量可以通过一个定义的正则匹配字符串。在这种情况下,变量可以绑定匹配并作为参数传入一个函数中。

如果这听起来并没有什么了不起,只是如正常的表达式一般的功能,那么Coconut可以做的,远远超出了对字符串的匹配。例如,传入的一个对象列表可以用预期的类型去匹配。

Debug一直是方言的重灾区,很多编译成JavaScript的语言都很难调试,需要根据编译之前的源代码调试。Coconut提供了类似的东西:如果你通过命令行给Coconut的编译器传入一些参数,它就会将Coconut源代码和编译成的Python代码通过注释关联起来。

Coconut的创始人想将Coconut作为Python的一个逻辑扩展,而不是要替代Python。所有有效的Python应用在Coconut中同样有效,所以现在的Python库和C扩展库可以在Coconut中使用。

原文:Python gains functional programming syntax via Coconut
作者: Serdar Yegulalp
译者:赖信涛
责编:钱曙光

评论