这边就写点小代码,不求写得很精准能用就好了(跪....
统计文件数量:
%%%=============================== %%% @author cc %%% @description %%% 查找并统计对应后缀的文件 %%% @end %%%=============================== -module(seek_file). -export([seek/1,count/2]). -define(FLAG,seekfile). %%程序启动入口,初始化一个监听进程用于统计 seek(Dir) -> Pid=spawn(seek_file,count,[0,[]]), case whereis(?FLAG) of undefined -> register(?FLAG,Pid); _ -> unregister(?FLAG),register(?FLAG,Pid) end, seek_inner(Dir,0). %%搜寻文件的函数 seek_inner(Dir,No) -> Files=filelib:wildcard(Dir ++ "/*"), deal_with(Files,No). %%用于监听的函数 count(Sum,List) -> receive {add,X,File} -> count(Sum+X,[File] ++ List); stop -> io:format("~p~n ~p~n",[Sum,List]) end. %%deal_with/2用于对文件进行判断 %%这边用了很多的递归 如果No为0并 %%且列表为空了那么程序就结束了 deal_with([],No) when No/=0 -> ok; deal_with([],No) -> ?FLAG ! stop; deal_with([File|Others],No) -> case filelib:is_dir(File) of %%间接递归的函数标记为1 true -> seek_inner(File,1); false -> case re:run(File,".*\\.java$",[]) of nomatch -> ok; {match,_}-> ?FLAG ! {add,1,File} end end, deal_with(Others,No).
输出:
22> c(seek_file). seek_file.erl:33: Warning: variable 'No' is unused {ok,seek_file} 23> seek_file:seek("g:/workbench/web"). 5 ["g:/workbench/web/huffman/src/org/cc/mediawork/Huffman.java", "g:/workbench/web/huffman/src/org/cc/mediawork/Huffman 2.java", "g:/workbench/web/huffman/src/org/cc/mediawork/Huffman - 3.java", "g:/workbench/web/huffman/src/org/cc/mediawork/Huffman - .java", "g:/workbench/web/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/work/Catalina/localhost/first/org/apache/jsp/index_jsp.java"] stop
相关推荐
“即便我已经使用Erlang多年,在编程的时候仍然需要参考《Erlang编程指南》。不同层次的Erlang程序员都会发现本书是有价值的学习和参考资料..., 《Erlang编程指南》每章末尾都提供了练习题,并且由简单的示例贯穿全书。
本书由Erlang之父Joe Armstrong编写,是毋庸置疑的经典著作。书中兼顾了顺序编程、并发编程和...第2版全新改写,反应了自第1版面世以来Erlang历经的所有变化,添加了大量针对初学者的内容,并在每章后都附上了练习题。
建议学习实践: ...1. 要坚持实践高性能大并发编程的实践 2. Erlang基础->OTP高并发编程实践PDF->Elixir 3. 认真实践本书中的知识点, 动手练习, 高并发软件实时大容量的服务器开发可打败C++的大团队开发
Erlings:进行一些小练习,以使您习惯于阅读和编写Erlang代码 来源: : Erlang是一种编程语言,用于构建对高可用性有要求的大规模可扩展软实时系统。 它的一些用途是在电信,银行,电子商务,计算机电话和即时...
二郎任务Erlang Quest 是一个小游戏,您可以在其中解决 Erlang 编程任务,从非常简单的东西开始。 Erlang Quest 是一种练习 Erlang 的方式——在 Erlang 中写作和解决问题。 它不包括 Erlang 语法等方面的教程——...
编程 Erlang:并发世界的软件(练习) 这是我完成的练习集。 我所做的每一章都在一个单独的目录中,例如chapter_1等。我还计划将我在每章中沿途捡起的markdown格式的笔记放在一起。 最终将在本自述文件中找到更重要...
卡塔斯已达到此仓库中1000个文件的限制,因此这是一个新的文件,用于处理更多程序难题,katas等。
erlang_etude 我的《 Erlang练习曲》编程解决方案-http: (代码示例,作者版权所有)。 在尝试解决练习题时,我修改了一些代码示例,而某些代码示例则取自上述网站。
它是一种很小的关系编程语言,在Jason Hemann和Daniel P. Friedman的超级有趣的教程认真的科学出版物的定义。我可以运行在合理的策士在练习mkr ? 是的! 您可能需要小心,因为conde实际上交错流,像condi从理由...
最初使用的编程语言是Erlang,但现在我们转向Elixir。讲课将有14堂讲座将讲解功能和并发编程的概念。 我们将使用Elixir作为示例语言,但讲座更侧重于全局。 学习Elixir是您在编程时最好学习的东西。练习题强烈建议...
只是一堆小练习来保持头脑敏锐。 应该注意的是,截至 2014 年 9 月 28 日,由于我参加了 Martin Odersky 教授的 Coursera Scala 课程,因此统计数据对 XLST 和 Scala 存在偏差。 这可能会一直持续到我完成后,尽管我...
文章目录一、函数式1、函数式简介2、匿名函数与lambda二、递归调用1、递归调用要点透析2、递归调用的两个过程:回溯与递推3、递归经典例题练习(1)嵌套多层的列表,要求打印出所有的元素(2)二分法递归实现 ...
使用功能性编程语言(例如Clojure,Elixir,Elm,Haskell Scala,Lisp,Erlang,Purescript,F#或Scheme)进行运动。 资料夹结构 语言名称锻炼的名字 运动文件夹应包含README.md和源代码。 如果已经有解决方案,只...
#StupidATM由Nick Nyman和Jonas Dahl编写的KTH progp14... 编写例如Go或Erlang旨在处理并行编程范例。 另一方面,Erlang在处理字符串方面不是很擅长,您可能需要在Java中为用户界面编写一个小的前端。 (此练习尚未在
在每节后面有问题和习题的编程书籍是很好的学习工具,可以练习你学到的知识,但这样的 书很少。最近出版的《Functional Programming with F#》是一个很优秀的例子,它的每 章后面都有问题习题。 也许几个小时你就能...