Erlang順序型程式設計高階

2021-08-07 11:20:30 字數 3603 閱讀 3761

% 元組轉換成列表

1> tuple_to_list().

[12,cat,"hellp"]

% 返回當前時分秒

2> time().

1> <<5,10,20>>.

<<5,10,20>>

2> <<"hello">>.

<<"hello">>

3> <<99,97,116>>.

<<"cat">>

1> bin1 = <<1,2,3>>.

<<1,2,3>>

2> bin2 = <<4,5>>.

<<4,5>>

3> bin3 = <<6>>.

<<6>>

4> list_to_binary([bin1,1,[2,3,bin2],4|bin3]).

<<1,2,3,1,2,3,4,5,4,6>>

5> split_binary(<<1,2,3,4,5,6,7,8,9,10>>,3).

6> b = term_to_binary().

<<131,104,3,100,0,8,98,105,110,97,114,105,101,115,107,0,3,

97,114,101,100,0,6,117,115,101,102,117,108>>

7> binary_to_term(b).

8> size(<<1,2,3,4,5>>).

5

將 x, y, z 封裝在乙個 16 bit 字長的記憶體區域 , x 佔 3bit , y 佔 7bit , z 佔 6bit

1> x = 2.

22> y = 61.

613> z = 20.

204> m = <>.

<<"ot">>

5> <> = m.

<<"ot">>

6> x1.

27> y1.

618> z1.

20

"hello"

屬性 :

-module(modname).   % 模組宣告

-import(lists, [map/2]). % 從別的模組匯入函式

-export([a/2, b/1]). % 匯出函式

-compile(options). % 新增編譯選項

-vsn(version). % 指定模組版本

塊表示式 :

begin

expr1,

...,

expr2

end

布林型別 :

1> true.

true

2> false.

false

布林表示式 :

not b1.

b1 and b2.

b1 or b2.

b1 xor b2.

短路布林表示式 :

expr1 orelse expr2.

% 先求表示式 expr1 , 如果 expr1 為 true , 則不會求 expr2 的值 (即被短路了) ; 如果 expr1 為 false , 則會對 expr2 求值

expr1 andalso expr2.

% 先對 expr1 求值 , 如果為 true , 那麼 必須對 expr2 求值 ; 如果 expr1 為 false , 則不對 expr2 求值

包含檔案 :

-include(filename).

-include(libname).

列表操作符++--

1> [1,2,3] ++ [4,5,6].

[1,2,3,4,5,6]

2> [1,2,3] -- [1].

[2,3]

3> [1,1,2,3] -- [1].

[1,2,3]

4> [1,1,2,3] -- [1,1].

[2,3]

巨集 :

%% m1.erl

-module(m1).

-export([start/0]).

-ifdef(debug).

-define(trace(x), io:format("trace ~p:~p ~p~n",[?module, ?line, x])).

-else.

-define(trace(x), void).

-endif.

start() -> loop(5).

loop(0) ->

void;

loop(n) ->

?trace(n),

loop(n-1).

%% cmd

1> c(m1,).

2> m1:start().

trace m1:15 5

trace m1:15 4

trace m1:15 3

trace m1:15 2

trace m1:15 1

void

數值型別 :

整型 :

% 2 進製數

1> 2#00101010.

42% 16 進製數

2> 16#af6bfa23.

2943089187

3> 13.

134> -18.

-18

浮點型 :

1> 1.0.

1.02> 3.1415926.

3.1415926

3> -2.3e+6.

-2.3e6

4> 23.56e-27.

2.356e-26

程序字典 :

1> erase().

2> put(x,20).

undefined

3> get(x).

204> get(y).

undefined

5> put(y,40).

undefined

6> get(y).

407> get().

[,]8> erase(x).

209> get().

作者 github : tojohnonly , 部落格 : enskdecode

erlang 順序程式設計 記錄與對映組03

記錄其實就是元組的另一種形式。儲存與效能特性和元組一樣。應用場景 建立 讀取 更新 建立 record todo,讀取shell裡,shell編譯 rr records.hrl 建立乙個副本 todo 建立乙個副本並修改元素 x1 todo.以x1為副本建立,並修改其中元素 x2 x1 todo.模...

Erlang高階函式 遞迴

說明 erlang 高階函式 匿名函式 有一大堆資料,不再贅述,這裡主要說以下高階函式遞迴式。高階函式遞迴用法 高階函式實現尾遞迴有兩種方式 1 將高階函式自身作為引數傳入,並在內部呼叫 2 通過fun進行類似普通函式的定義 1 作為引數傳入 參考資料 erlang匿名函式的遞迴 寫普通函式的時候函...

Erlang程式設計01

erlang程式設計簡介 erlang程式設計 由人民郵電出版社出版發行 圖靈程式設計叢書 作者 joe armstrong 喬 阿姆斯壯 譯者 趙東煒 金尹 錄入 cenzige 詳細資訊 書名原文 programming erlang software for a isbn 978 7 115 ...