我知道可以使用模式匹配从列表中提取头部和尾部。但这是 * 必要的 * 吗?在lists
模块和erl中没有名为head
或tail
的东西。(它确实包括nth/2
和nthtail/2
,它们更强大,但这些似乎是实现head
和tail
的不自然的冗长方法。)
我在顶级名称空间中也找不到它们:
Erlang/OTP 24 [erts-12.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [jit]
Eshell V12.0 (abort with ^G)
1> head([1,2]).
** exception error: undefined shell command head/1
2> tail([1,2]).
** exception error: undefined shell command tail/1
2条答案
按热度按时间5ktev3wc1#
模式匹配是访问列表中的头和尾的推荐方法。经常使用函数来访问它们的代码可能不是很好的Erlang惯用语言。然而,在很少的情况下,这些函数确实很有用。你可以在this link的其他Erlang内置函数中找到它们,名称为
hd
和tl
。jm81lzqq2#
模式匹配是函数式编程语言中操作数据的标准方法,Erlang也不例外。因此也存在一种处理List的方法。再一次,
List
是native
/built-in
/primitive
类型,可用的是那些hd
和tl
BIF(s)来操作它们。