【发布时间】:2019-06-01 16:26:23
【问题描述】:
Elixir 中的 Kernel 模块提供了很多功能,默认情况下可以在任何地方导入,而不需要前缀 Kernel。但是,其中许多函数只作用于特定的数据类型。
对我来说最突出的是对列表进行操作的那些,例如 length/1、hd/1 和 tl/1。 Elixir 已经有一个List module,那么为什么这些函数没有包含在 List 模块中(即List.length/1)?
我了解常用功能更短、更方便,但这样就不会使用别名在List 之类的模块中复制功能吗?鉴于这些函数是作为宏实现并由编译器内联的,是否存在语言约定或技术限制会使这变得困难?
【问题讨论】:
标签: elixir