今天的Erlang Thursday要讲的函数是 timer:tc/3.
我相信我们所有人写测量目标代码执行耗时的代码都是先获取当前时间,接着执行目标代码,再获取当前时间,最后将前后两个时间的差作为目标代码的执行耗时。在Erlang里,按这种方式来写的话将像下面这样:
今天的Erlang Thursday要讲的函数是 timer:tc/3.
我相信我们所有人写测量目标代码执行耗时的代码都是先获取当前时间,接着执行目标代码,再获取当前时间,最后将前后两个时间的差作为目标代码的执行耗时。在Erlang里,按这种方式来写的话将像下面这样:
今天的 Erlang Thursday 要讲的函数是 lists:any/2.
lists:any/2 接收一个断言函数作为第一个入参,一个将被遍历的列表作为第二个入参。如果这个断言函数对于任意一个给定列表的元素返回 true 的话lists:any/2 返回 true ,否则, lists:any/2 返回 false 。
今天的Erlang Thursday讲的是 lists:partition/2.
lists:partition/2 接收两个入参,第一个入参是一个断言函数,它将被调用对列表里的每个元素进行处理然后返回一个布尔值。第二个入参是一个将被分隔的列表。
lists:parition/2 返回一个两元素的元组,这个元组的第一个元素是一个列表,这个列表的元素是断言函数返回真值所对应的元素组成;元组第二个元素也是一个列表,它是断言函数返回false所对应的元素组成。
|
|
原文链接: https://www.proctor-it.com/erlang-thursday-lists-partition-2/
今天Erlang Thursday讲的是 lists:foldl/3 和 lists:foldr/3 。
lists:foldl/3 是Erlang版的 reduce 函数。 lists:foldl/3 接收三个入参:一个函数,一个初始的累加器,一个列表,输出一个单一的值。
今天的Erlang Thursday讲的是函数 lists:map/2 。
lists:map/2 接收两个入参,一个是接收一个入参的函数,我们称它为“mapping”函数,另一个是一个Erlang term组成的列表。lists:map/2 的结果是一个列表,这个列表是由入参的列表的每个元素应用于“mapping”函数得到结果组成的。
Erlang Thursday今天要讲的函数是 lists:flatten/1。
lists:flatten/1 函数将一个任意深度的由Erlang的term组成的列表展平为一个“扁平”的列表。
今天我们来学习 lists:max/1。
lists:max/1 接收一个入参,这个入参是一个最少有一个元素的列表,并且它返回这个列表里最大值的元素。这个列表可以由任何Erlang term组成:
Erlang Thursday系列文章的下一个目标是详细描述那些与Ruby Tuesday系列文章里着重阐述的方法所相对应的Erlang函数。我希望通过每个星期与Ruby Tuesday配合的Erlang Thursday系列文章能使得读者渐渐不再对Erlang陌生;我也希望通过这种方式建立一个共同讨论的渠道来使得读者不再认为Erlang是令人生畏的一门语言。我很想知道您对我这个目标如何才能更好地让读者接受和理解的一些想法。
为了和每周的 Ruby Tuesday 系列文章中关于Enumerable#include?函数来个跨界对比,我决定着重介绍 Erlang 中相同类型的函数,lists:member/2。