Time is all


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 搜索
close

Erlang Thursday - timer:tc/3

发表于 2016-09-15   |   分类于 Erlang , timer

今天的Erlang Thursday要讲的函数是 timer:tc/3.

我相信我们所有人写测量目标代码执行耗时的代码都是先获取当前时间,接着执行目标代码,再获取当前时间,最后将前后两个时间的差作为目标代码的执行耗时。在Erlang里,按这种方式来写的话将像下面这样:

阅读全文 »

Erlang Thursday - lists:any/2

发表于 2016-09-15   |   分类于 Erlang , lists

今天的 Erlang Thursday 要讲的函数是 lists:any/2.

lists:any/2 接收一个断言函数作为第一个入参,一个将被遍历的列表作为第二个入参。如果这个断言函数对于任意一个给定列表的元素返回 true 的话lists:any/2 返回 true ,否则, lists:any/2 返回 false 。

阅读全文 »

Erlang Thursday - lists:partition/2

发表于 2016-09-15   |   分类于 Erlang , lists

今天的Erlang Thursday讲的是 lists:partition/2.

lists:partition/2 接收两个入参,第一个入参是一个断言函数,它将被调用对列表里的每个元素进行处理然后返回一个布尔值。第二个入参是一个将被分隔的列表。

lists:parition/2 返回一个两元素的元组,这个元组的第一个元素是一个列表,这个列表的元素是断言函数返回真值所对应的元素组成;元组第二个元素也是一个列表,它是断言函数返回false所对应的元素组成。

1
2
3
4
5
6
7
8
9
10
lists:partition(fun(X) -> X rem 2 == 1 end, [1, 2, 3, 4, 5, 6, 7]).
% {[1,3,5,7],[2,4,6]}
lists:partition(fun(X) -> X rem 3 == 0 end, [1, 2, 3, 4, 5, 6, 7]).
% {[3,6],[1,2,4,5,7]}
lists:partition(fun erlang:is_atom/1, [a, 1, [b, c], 'B', fun lists:sum/1]).
% {[a,'B'],[1,[b,c],#Fun<lists.sum.1>]}
lists:partition(fun erlang:is_atom/1, [a, 1, {b, [z]}, 'B', fun lists:sum/1]).
% {[a,'B'],[1,{b,[z]},#Fun<lists.sum.1>]}
lists:partition(fun erlang:is_atom/1, []).
% {[],[]}

原文链接: https://www.proctor-it.com/erlang-thursday-lists-partition-2/

Erlang Thursday - lists:zip/2

发表于 2016-09-15   |   分类于 Erlang , lists

今天的Erlang Thursday讲的函数是 lists:zip/2.

lists:zip/2 返回一个由两元素元组组成的列表,其中两元素元组是由两个入参列表位置相对应的元素组成。

阅读全文 »

Erlang Thursday - lists:foldl/3 and lists:foldr/3

发表于 2016-09-15   |   分类于 Erlang , lists

今天Erlang Thursday讲的是 lists:foldl/3 和 lists:foldr/3 。

lists:foldl/3 是Erlang版的 reduce 函数。 lists:foldl/3 接收三个入参:一个函数,一个初始的累加器,一个列表,输出一个单一的值。

阅读全文 »

Erlang Thursday - lists:map/2

发表于 2016-09-15   |   分类于 Erlang , lists

今天的Erlang Thursday讲的是函数 lists:map/2 。

lists:map/2 接收两个入参,一个是接收一个入参的函数,我们称它为“mapping”函数,另一个是一个Erlang term组成的列表。lists:map/2 的结果是一个列表,这个列表是由入参的列表的每个元素应用于“mapping”函数得到结果组成的。

阅读全文 »

Erlang Thursday – lists:flatten/1

发表于 2016-09-15   |   分类于 Erlang , lists

Erlang Thursday今天要讲的函数是 lists:flatten/1。

lists:flatten/1 函数将一个任意深度的由Erlang的term组成的列表展平为一个“扁平”的列表。

阅读全文 »

Erlang Thursday – lists:max/1

发表于 2016-09-15   |   分类于 Erlang , lists

今天我们来学习 lists:max/1。

lists:max/1 接收一个入参,这个入参是一个最少有一个元素的列表,并且它返回这个列表里最大值的元素。这个列表可以由任何Erlang term组成:

阅读全文 »

Erlang Thursday – lists:seq

发表于 2016-09-15   |   分类于 Erlang , lists

Erlang Thursday系列文章的下一个目标是详细描述那些与Ruby Tuesday系列文章里着重阐述的方法所相对应的Erlang函数。我希望通过每个星期与Ruby Tuesday配合的Erlang Thursday系列文章能使得读者渐渐不再对Erlang陌生;我也希望通过这种方式建立一个共同讨论的渠道来使得读者不再认为Erlang是令人生畏的一门语言。我很想知道您对我这个目标如何才能更好地让读者接受和理解的一些想法。

阅读全文 »

Erlang Thursday – lists:member/2

发表于 2016-09-15   |   分类于 Erlang , lists

为了和每周的 Ruby Tuesday 系列文章中关于Enumerable#include?函数来个跨界对比,我决定着重介绍 Erlang 中相同类型的函数,lists:member/2。

阅读全文 »
1…1617
彭政生

彭政生

盛年不重来,
一日难再晨,
及时当勉励,
岁月不待人。

170 日志
119 分类
240 标签
RSS
GitHub Twitter
  • Joe Armstrong
  • Proctor It
  • 系统技术非业余研究
  • 回头再说 坚强2002的博客
  • siyao zheng
  • As bad as anything else
  • Bico 笔记
  • 可译网
© 2016 - 2019 彭政生
由 Hexo 强力驱动
主题 - NexT.Pisces