超簡單的Erlang複數實現

2021-05-22 02:28:01 字數 1464 閱讀 1958

% 超簡單的複數的erlang實現

% 參見:  http://www.trapexit.org/complex_numbers

-module(complex).

-export([make/2, is_complex/1, add/2, sub/2, mult/2, divide/2,

get_real/1, get_imaginary/1]).

-record( complex, ).

is_complex(x) when is_record(x, complex) -> true;

is_complex(_) -> false.

make(real, imaginary) ->

#complex.

make(x) when is_record(x, complex) -> x;

make(real) -> make(real, 0).

add(x, y) ->

a = make(x), b = make(y),

make( a#complex.real      + b#complex.real,

a#complex.imaginary + b#complex.imaginary).

sub(x, y) ->

a = make(x), b = make(y),

make( a#complex.real      - a#complex.real,

b#complex.imaginary - b#complex.imaginary).

mult(x, y) ->

a = make(x), b = make(y),

make( (a#complex.real * b#complex.real)

- (a#complex.imaginary * b#complex.imaginary),

(a#complex.real * b#complex.imaginary)

+ (b#complex.real * a#complex.imaginary) ).

divide(x,y) ->

a = make(x), b = make(y),

divisor = math:pow(b#complex.real,2) + math:pow(b#complex.imaginary,2),

make( ((a#complex.real * b#complex.real)

+ (a#complex.imaginary * b#complex.imaginary)) / divisor,

((a#complex.imaginary * b#complex.real)

- (a#complex.real * b#complex.imaginary)) / divisor).

get_real(x) -> x#complex.real.

get_imaginary(x) -> x#complex.imaginary.

003 超簡單的複數類

描述 下面程式的輸出是 3 4i 5 6i 請補足complex類的成員函式。不能加成員變數。include include include using namespace std class complex 在此處補充你的 int main 輸入無 輸出3 4i 5 6i 分析 從程式可以看出來,...

erlang例項 los簡單實現

最近看了 erlang程式設計 好書,翻譯的也不錯,兩天時間,基本讀完 我的習慣總是先快速讀完一本書再回過頭,一邊練習一邊翻閱 正試著學習編寫erlang的例子。joe在網上 http erlang.org examples examples 2.0.html 給了乙個簡單系統 sos 的例子,可惜...

erlang的簡單編譯

首先我們先來建立乙個test的資料夾,然後再該資料夾下建立這樣幾個資料夾 這些在以後都是用的到的,檔案結構不需要更多複述!目的是將我們所有的編譯好的beam檔案放到ebin中以便我們進行操作 我們在script資料夾下新建乙個檔案格式的emakefile檔案,然後我們在src內新建兩個資料夾modu...