Erlang學習筆記(二)

2021-07-24 12:01:47 字數 1306 閱讀 4800

erlang的併發特性源自語言本身而並非作業系統。它把現實世界模擬成一系列的程序,其間僅靠交換訊息進行互動,因此erlang簡化了並行程式設計。在erlang世界中,存在並行程序但是沒有鎖,沒有同步方法,也不存在記憶體汙染的可能,因為erlang根本沒有共享記憶體.

erlang程式可以由幾百萬個超級輕量級的程序組成。這些程序可以執行在單處理器、多核處理器或者處理器網路上。

安裝erlang: 

啟動shell:

在命令列輸入erl

變數:erlang所以變數都必須大寫字母開頭.

變數不變:

erlang的變數是單一賦值變數,單一賦值變數的值只能一次性的給定.乙個變數一旦被賦了值,想再次改變它,就會得到乙個錯誤.乙個變數如果含有乙個唄賦予的值,就稱為繫結變數,否則,則稱作自由變數.一開始,所有的變數都是賦值的.

模式匹配:

在erlang中,=表示乙個模式匹配操作,lhs=rhs,實際是這樣乙個過程,對右端求值(rhs),然後將結果與左端(lhs)進行模式匹配.

在等號的左邊,無論是繫結的還是自由的,這些模式都只是變數。而元組和列表,通常用於儲存復合資料。

erlang沒有可變狀態,也沒有共享記憶體,更沒有鎖,這一切都有利於並行化程式的編寫。

浮點數:

「/」永遠返回浮點數。

原子:在erlang中,原子用了表示不同的非數字常量值。

erlang中原子是全域性有效的,而且無需使用巨集定義或者包含檔案。

原子是一串以小寫字母開頭,後跟數字字母或者下劃線(_)或者郵件符號(@)的字元。

乙個原子的值就是原子自身。

erlang是乙個函式式的語言,每乙個表示式都必須有值,整數和原子也不例外.

元組:將一定數量的項組成單一的實體,就可以使用元組。將若干個以逗號分割的值用一對花括號括起來,就形成乙個元組。

如:.這個元組乙個原子和乙個浮點值。

從元組中提取字段值:

point=.

=point.

x.y.

_表示佔位符,表示哪些我們不關心的變數,符號_稱為匿名變數。

列表:將若干個以逗號分割的值用一對方括號括起來,就形成了乙個列表。

定義列表:

如果t是乙個列表,那麼[h|t]也是乙個列表,這個列表以h為頭,以t為尾,豎線符號(|)可以將列表的頭和尾分割開來,而則是空列表.

乙個非空列表[x|y]=l(這裡x,y都是自由變數),可以把列表的頭提取到x,將列表的尾提取到y.

字串:

erlang種沒有字串,字串實際就是乙個整數列表,用「」將一串字元括起來就是乙個字串.

最後記住  命令f()會讓shell釋放它所繫結過的所有變數.

Erlang學習筆記(二)

今天在練習map對映組的時候 本人erlang版本17.01 根據 erlang程式設計 第二版這本書上操作,在取值的時候發現問題,如下 書中操作 如下圖 明顯兩個程式執行不一樣,後來看到官方文件,才發現是這個樣子 在上圖中明確指出,在map對映組中取值的時候用 取值,後來又看了看兩者區別發現兩者只...

Erlang 學習筆記(二)

erlang 學習筆記 二 guibin.beijing gmail.com size medium 1.5 erlang的資料型別 size b u 變數 variables u b 從 url 927861 erlang 學習筆記 一 url 中的 中的double函式定義發現,其引數為x,而且...

Erlang學習筆記二

函式的過載 module geometry export area 1 area width height area side side.通過傳輸元組的方式,可以實現方法的過載,會根據模式匹配自己尋找合適的匹配方法體。被export宣告的方法就是公有方法,而未被宣告的就變成私有方法。shell的操作...