`
stephen
  • 浏览: 27313 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Erlang for C, C++ and Java Programmers [zz]

阅读更多
http://npt.cc.rsu.ru/user/wanderer/ODP/Erlang_tutorial.html

Atoms are used in places where in C one might define a constant

the = operator doesn't in fact mean assign, it means "match with".

-- match with -- unify 合一,prolog 里面的合一

the -> construct should be read as "evaluates to".

-- prolog 用 -> 表示替换

test(A) -> 1.

    test(int a) {
        return 1
    };


This would be the idiomatic way to write this in Erlang, and in fact (in R8B) is evaluated more quickly than the case statement.

-- switch 语句可以使用函数来替换。c++ 的重载函数,多态体现在数据类型方便,Erlang 体现在数据值方面。

-- prolog 在求解过程中,使用 -> 替换进行穷举尝试。替换的依据是 rule 。

-- 在 list 中加入一个 item 。按 c++ 常规链表的实现方式,如果加入的 item 放到链表的最前面,那么只需要这个新的 item 指向原来的头部,而这个新的 item 成为新链表的标识。这样也就没违反 Erlang 的变量只能赋值一次的限制。

-- 但如果要插入一个 item 到链表中,那么就会引起连锁反应。假设链表已经有 2 个 item ,新 item 要插入到中间。那么除了最后一个 item 不需要改变之外,最前面的 item 需要改变它的 next 指针的指向,所以这个插入操作导致 copy 最前面的 item 。如果链表不止有两个 item ,那么一旦进行这样的插入,在插入点之前的所有 item 都会导致要 copy 一次。

-- Erlang 中变量只能赋值一次,同 DDD 中讲的 Query 和 Command 分离的想法很相似,都是避免副作用(side effect)。

Wings3D hold a list of funs which it uses as a stack.

分享到:
评论

相关推荐

    Erlang and Elixir for Imperative Programmers(Apress,2016)

    This book is partly a tale of the author’s own experience and partly a description of the bigger and more subtle differences between Erlang/Elixir and languages such as C++, Java, and C# What You’...

    erlang -c语言程序接口.pdf

    ### Erlang与C语言程序接口详解 #### 一、引言 在软件开发领域,不同编程语言之间的交互是一项重要的技术。Erlang作为一种专为构建高并发、容错性强的应用程序而设计的语言,在与其他语言(如C语言)的集成方面具有...

    Erlang and OTP in Action

    This book walks you through the practical considerations and steps of building systems in Erlang and integrating them with real-world C/C++, Java, and .NET applications. Unlike other books on the ...

    erlang-java聊天

    【Erlang与Java交互实现聊天程序】 在IT领域,Erlang和Java都是重要的编程语言,各有其独特的优点和应用场景。本项目“erlang-java聊天”是一个初级水平的示例,展示了如何利用这两种语言进行交互,实现一个简单的...

    erlang调用java

    `Erlang`和`Java`都是在各自领域有着独特优势的语言。`Erlang`以其强大的并发处理能力和容错性著称,而`Java`则有丰富的库支持和广泛的企业级应用。将两者结合,可以充分利用它们的优势。本文将详细探讨如何在`...

    Erlang and OTP in Action MEAP May 2010

    Chapter Thirteen: Communication between Erlang and Java via JInterface Chapter Fourteen: Optimization and Performance Chapter Fifteen: Make it Faster Appendix A – Installing Erlang Appendix B – ...

    Erlang C计算公式 .pdf

    Erlang C计算公式是呼叫中心领域中用于预测和优化人力资源分配的重要工具,由丹麦科学家Agner Krarup Erlang在20世纪初期提出。这个公式主要用于计算在给定的服务水平下,为了处理呼叫流量所需的坐席数量。Erlang C...

    ErlangB和ErlangC计算工具(exe可执行文件+excel两个)

    提供的"爱尔兰B计算器.exe"和"ErlangC计算工具.xls"正是用于执行这些计算的工具。前者可能是一个图形用户界面的应用程序,用户可以直接输入呼叫参数,如呼叫到达率、系统容量等,然后软件将根据Erlang B公式计算出无...

    Erlang-or-java.rar_erlang

    标题中的“Erlang-or-java.rar_erlang”表明这是一个关于Erlang和Java之间通信的示例项目。Erlang是一种面向并发、分布式、容错的编程语言,常用于构建高可用性和高并发性的系统,而Java则是一种广泛应用的通用编程...

    java php python erlang 千万级内存数据性能比较

    在提供的文件"erlang_list_dict_test.erl"和"erlang_list_dict_test - pro_dict-check_duplicate.erl"中,可以看到Erlang对列表和字典(dict)操作的性能测试。Erlang的字典数据结构通常比其他语言的哈希表更快,...

    学到一些Erlang,以造福所有人!Learn You Some Erlang for Great Good!

    本书是为那些具有命令式语言编程基础知识(例如C / C ++,Java,Python,Ruby等)并且可能会或可能不知道函数式编程(例如Haskell,Scala,Erlang)的人们学习Erlang的一种方法。 ,Clojure,OCaml等)。

    Erlang26-windows安装包

    OpenSSL 3 support in Erlang is considered to be mature and ready for production use. Erlang 26.1 and later versions supports FIPS mode on OpenSSL 3 3.12.13 3.12.12 3.12.11 3.12.10 25.0 26.2.x The ...

    Erlang B公式计算器

    Erlang B公式是通信网络领域中用于计算呼叫阻塞概率的重要工具,它在电路交换系统,特别是电话交换网络的设计中发挥着关键作用。这个压缩包包含了一个基于Erlang B公式的计算器程序,以及其源代码和实验报告,旨在...

    适用于windows版本的 Erlang25.2.3 and RabbitMQ server 3.11.9下载

    Erlang和RabbitMQ是两个在分布式系统和消息队列领域中至关重要的技术,尤其在Java开发中常被广泛运用。本压缩包提供的是适用于Windows操作系统的Erlang 25.2.3和RabbitMQ Server 3.11.9的下载资源,非常适合个人学习...

    适用于windows版本的 Erlang24 and RabbitMQ server 3.8.16下载

    标题提到的“适用于Windows版本的Erlang24 and RabbitMQ server 3.8.16下载”,意味着这两个组件的最新稳定版本已适配Windows操作系统。Erlang otp_win64_24.0是针对64位Windows系统的Erlang OTP(开放电信平台)...

Global site tag (gtag.js) - Google Analytics