Elixir 是 Erlang 的一个现代化的版本,更接近 OCaml。
这个系列的文章将通过一个很快速的方式入门 Erlang。这篇文章建议拥有一定的 C/C++等语言基础以及任意一门 FP 类语言基础(如 Haskell)后再行阅读。
以上为前言,Let's start!
第一章 Hello,World!
接下来我先给出一段代码,然后逐一解释。
Elixir 是 Erlang 的一个现代化的版本,更接近 OCaml。
这个系列的文章将通过一个很快速的方式入门 Erlang。这篇文章建议拥有一定的 C/C++等语言基础以及任意一门 FP 类语言基础(如 Haskell)后再行阅读。
以上为前言,Let's start!
接下来我先给出一段代码,然后逐一解释。
今年是 2024 年 3 月,距离 C++11 标准提出(ISO/IEC 14882:2011)已经过去了 12 年半,距离 C++20 标准提出(ISO/IEC 14882:2020)也已经过去了两年,GCC5.0 已经默认采用了 C++11 标准,KDE Plasma 在 2020 年也在展望使用 C++20。在 C++11 标准出现后,Modern C++也变成了 C++11 以后 C++的代称。但是,在很多项目和 OI 中,却仍然在使用 C++98 这一个古老,落后而又“丑陋”的标准。因此,本文将从一个实用主义的角度详细阐述现代 C++。
本文将分为两个章节,分别是语言特性和库特性。以下部分不只局限于 C++11,也会包含之前标准的一部分内容,但是可能很方便没有被广泛使用。以下是语言特性部分。
Erlang,作为瑞典 Ericsson 公司旗下的一款 Functional Programming 语言,在高并发应用当中被广泛应用。事实上,Erlang 的名字也就来自于 Ericsson Language。它和它底下的若干配件合称 Erlang/OTP。
这个系列的文章将通过一个很快速的方式入门 Erlang。这篇文章建议拥有一定的 C/C++等语言基础以及任意一门 FP 类语言基础(如 Haskell)后再行阅读。
以上为前言,Let's start!
接下来我先给出一段代码,然后逐一解释。
函子在 C++中也有,但是呢个人认为 C++的那个函子不完全能被称作函子,反而容易误导人。而学习函数式编程应该用一门比较纯粹的函数式语言,以免过多的面向对象,面向过程知识来干扰学习,所以这篇文章的内容都是建立在一门纯函数式语言(Haskell)的基础上,如果你是写 Scala 或者 Lisp(Scheme)等其他函数式语言的,那么本文中的解释也会有一定帮助。
理解这两个概念这篇文章很有帮助(这篇文章好像也是一篇挺经典的文章),以下的概念是我基于这篇文章以及个人理解总结出来的。
C++11 在 g++5.0 的时候就已经被 GNU 官方设定为默认选项,这个标准也有着“20 年来 C++语言标准最剧烈的一次修订”的称谓。而 CCF 公开的 NOI Linux2.0 中的 g++更是到了 9.3 版,支持到 C++14 标准。这就意味着,使用 C++11 中的随机数生成方式是更加现代的选择。
在原来,数据生成一般会使用标准 C 的rand()函数,而rand()函数的原理是较为简单的:使用线性映射+取模运算生成。