Erlang舊誤區記錄

2021-10-19 05:21:34 字數 371 閱讀 8875

以前的誤區

誤區1:funs 執行速度很慢

誤區2:列表解析很慢

列表解析過去是使用fun來實現的,在過去,fun確實很慢。

現在,編譯器將列表推導式重寫為普通的遞迴函式。使用尾部遞迴函式並在末尾執行反向操作會更快。還是嗎?這就引出了乙個誤區:尾部遞迴功能比主體遞迴功能更快。

誤區3:列表減法(「——」運算子)很慢

列表減法的執行時複雜度通常與運算元長度的乘積成正比,所以當兩個列表都很長時,它的執行速度非常慢。

在otp 22中,執行時複雜度是「n log n」,即使兩個列表都很長,操作也會很快完成。事實上,它比常用的方法更快,使用更少的記憶體,在用ordersets減去它們之前將兩個列表轉換成有序集:subtract/2。

Erlang 記錄和對映組

對映組 是鍵 值對的關聯性集合。記錄 是元組的另一種表示形式,它的儲存與效能特性和元組一樣。記錄的語法形式 record name,說明 name 為記錄的名稱,key1,key2為記錄的各個字段必須為原子。記錄的定義可以儲存在erlang源 檔案裡,也可以由擴充套件名為.hrl的檔案儲存,然後包含...

erlang模式匹配小記錄

初學erlang,這裡對erlang的模式匹配進行記錄一下,當然下面是我從各個不同的 摘取的一些值得注意的地方,主要方便自己以後的查閱。下面總結了幾點需要注意的地方 1 模式匹配為變數賦值提供了基本的機制。被賦值後,變數便被繫結 否則便是未繫結變數。給變數賦值的動作稱作 繫結 變數一旦被繫結便不可更...

Erlang學習記錄 輸入和輸出

輸入和輸出功能都被定義在io模組 輸出功能非常常用,由於erlang專案沒有可斷點除錯的ide 或者說根本不需要 所以所有的除錯操作都是由io輸出 來除錯的 io get line 1.引數 輸入提示 獲取標準輸入,回車結束,io get chars 2.引數 輸入提示,跳過字元數量 獲取輸入字元,...