`
wj2me
  • 浏览: 12559 次
  • 性别: Icon_minigender_1
  • 来自: 杜塞尔多夫
最近访客 更多访客>>
社区版块
存档分类
最新评论

我的Erlang编程技巧大全

阅读更多
这里集中记录我的Erlang编程过程中零散发现的小的技巧以及代码之类的
防止被不良网站抓取,先不写具体内容,过几天再来补上

防止被不良网站抓取,先不写具体内容,过几天再来补上

#### 方便debug的macro定义 #### 2010-11-06
#### 一个函数加载所有的重新编译的代码 #### 2010-10-23
经常,会改变一个代码,逐个l(module)的话,很麻烦,一个lm()全搞定
lm() ->
  [c:l(M) || M <- mm()].

mm() ->
  modified_modules().

modified_modules() ->
  [M || {M, _} <- code:all_loaded(), 
        module_modified(M) == true].

module_modified(Module) ->
  case code:is_loaded(Module) of
    {file, preloaded} ->
      false;
    {file, Path} ->
      CompileOpts = 
        proplists:get_value(compile, Module:module_info()),
      CompileTime = proplists:get_value(time, CompileOpts),
      Src = proplists:get_value(source, CompileOpts),
      module_modified(Path, CompileTime, Src);
    _ ->
      false
end.

module_modified(Path, PrevCompileTime, PrevSrc) ->
  case find_module_file(Path) of
    false ->
      false;
    ModPath ->
      case beam_lib:chunks(ModPath, ["CInf"]) of
        {ok, {_, [{_, CB}]}} ->
          CompileOpts =  binary_to_term(CB),
          CompileTime = proplists:get_value(time,                             
                                            CompileOpts),
          Src = proplists:get_value(source, CompileOpts),
          not (CompileTime == PrevCompileTime) and 
              (Src == PrevSrc);
        _ ->
          false
      end
end.

find_module_file(Path) ->
  case file:read_file_info(Path) of
    {ok, _} ->
      Path;
    _ ->
      %% may be the path was changed
      case code:where_is_file(filename:basename(Path)) of
        non_existing ->
          false;
        NewPath ->
          NewPath
      end
  end.



#### 方便debug的macro定义 #### 2010-11-06
-define(x(X), io:format("~p~p: ~s = ~p~n", [?MODULE, ?LINE, ??X, X])).

test() ->
    VeryLongVariableName = foo(),
    ?x(VeryLongVariableName).

0
0
分享到:
评论

相关推荐

    ErlangOTP并发编程实战

    《erlang/otp并发编程实战》侧重生产环境下的erlang 开发,主要讲解如何构建稳定、版本控制良好、可维护的产品级代码,凝聚了三位erlang 大师多年的实战经验。 《erlang/otp并发编程实战》主要分为三大部分:第一...

    Erlang OTP并发编程实战(中文版)

    OTP(Open Telecom Platform)是Erlang编程语言的核心组件,提供了强大的并发处理能力和分布式系统构建框架。这本书以中文版的形式,帮助中文读者更便捷地学习和掌握这一技术。 **Erlang** 是一种面向并发的、函数...

    erlang并发编程 .pdf

    标准库部分则介绍了io、file、lists和code等模块,这些模块为Erlang编程提供了丰富的工具集。 翻译计划部分介绍了翻译计划的发起人连城,以及CPiE-CN翻译志愿者团队。志愿者们负责翻译各个章节,并且整个翻译过程...

    erlang资源

    Erlang是一种面向并发的、函数式编程语言,由瑞典...这两本书结合阅读,将为初学者提供一个全面的Erlang学习路径,从基础语法到高级并发编程技巧,有助于深入理解Erlang语言及其在构建高并发、分布式系统中的强大能力。

    Programming Erlang.pdf

    通过这种方式,读者可以从零开始学习Erlang,并逐步掌握其核心功能和编程技巧。 ### 7. 特别准备 文件中多次提到“Prepared exclusively for Kwonjin Jeong”,这表明本书或文件可能是专门为某个人定制的,即...

    erlang书籍

    书中可能包含了Erlang的语法特性、并发模型、错误处理、模块化设计等知识点,同时通过实例演示来帮助读者掌握Erlang编程技巧。 《Erlang中文手册》则是一份详细的参考文档,提供了Erlang语言的所有标准库函数、宏、...

    erlang趣学指南

    Erlang趣学指南是一本面向初学者的入门书籍,旨在帮助读者从零开始学习Erlang语言的基础知识和编程技巧。 这本书的作者Fred Hébert是一位在一线拥有丰富实战经验的工程师,他通过轻松幽默的文风和清晰的讲解,向...

    Erlang程序设计].源代码

    这些源代码可能是书中实例的实现,或者是针对Erlang编程技巧和概念的示例。通过阅读和分析这些源代码,你可以深入理解Erlang的关键特性: 1. 函数式编程:Erlang是一种纯函数式语言,这意味着函数没有副作用,相同...

    Erlang程序设计(第2版)1

    【Erlang程序设计(第2版)】是由Erlang之父Joe Armstrong撰写的一本经典著作,专注于介绍Erlang编程语言在并发、分布式和容错系统中的应用。本书适用于初学者和有一定经验的Erlang程序员。作者在书中讨论了如何利用...

    Programming Erlang

    本书不仅涵盖了Erlang的基本语法和编程技巧,还深入探讨了如何利用Erlang来构建高效、可扩展的并发系统。 ### 并发与现实世界的映射 书中强调,如果想要编写的行为如同现实世界中的对象一样自然的程序,那么这些...

    erlang并发编程中文翻译(cpie-cn).zip

    《Erlang并发编程》是一本深入探讨Erlang编程语言并发特性的书籍,中文翻译版为《erlang并发编程中文翻译(cpie-cn)》。Erlang是一种面向并发的、函数式编程语言,最初由爱立信开发,用于构建高可用性、容错性和可...

    Erlang程序设计及源码

    配套的源码文件可以帮助读者更好地理解书中所讲解的概念和技巧,通过实际操作加深对Erlang编程的理解。可以学习如何组织模块、处理并发、实现分布式通信等核心技能。 9. **学习资源** 对于初学者,可以通过阅读...

    程序员开发erlang的资料

    8. **Erlang Battle**:erlbattle.pdf可能是一个关于Erlang编程竞赛或挑战的文档,通过实际问题来提升Erlang编程技能。 学习Erlang的过程中,结合Eclipse的Erlide插件可以提供良好的开发体验。同时,了解Jinterface...

    erlang英文手册+中文教程

    **Erlang编程语言概述** Erlang是一种高级并发编程语言,由爱立信公司于1986年开发,主要用于构建高可用性、容错性强的分布式系统。它的设计灵感来源于函数式编程,强调纯函数计算,无副作用,使得程序更加简洁且...

    Erlang学习资料

    ### Erlang多核编程入门知识点总结 #### 一、Erlang多核编程背景与重要性 - **多核时代的来临**:随着技术的发展,单个芯片内部的...通过学习和掌握Erlang的多核编程技巧,开发者可以更加从容地面对多核时代的挑战。

    erlang程序设计与入门

    **Erlang程序设计与入门** ...通过阅读《Erlang入门手册》和《Erlang程序设计》这两本书,你可以深入了解Erlang的基础知识、编程技巧以及最佳实践,从而在函数式编程和并发系统的世界里游刃有余。

    Pragmatic.Programming.Erlang.2nd.Edition

    《Pragmatic Programming Erlang 第二版》由Erlang之父Joe Armstrong撰写,是一本深入浅出地介绍了Erlang语言特性和编程技巧的专业书籍。本书不仅适用于初学者入门,也为经验丰富的开发者提供了新的见解和技术指导。...

Global site tag (gtag.js) - Google Analytics