Functional Programming in VHDL

VHDL是一种硬件描述语言。

ARCHITECTURE full_add_arch OF full_add IS 
    COMPONENT adder 
    port( 
        a, b, c: IN STD_LOGIC; 
           carr: OUT STD_LOGIC; 
            sum: OUT STD_LOGIC
    ); 
    END COMPONENT; 
SIGNAL c1, c2, c3: STD_LOGIC; 
BEGIN 
    port( 
        u0: adder PORT MAP(a(0), b(0), cin, c1, sum(0) ); 
        u1: adder PORT MAP(a(1), b(1), c1, c2, sum(1) ); 
        u2: adder PORT MAP(a(2), b(2), c2, c3, sum(3) ); 
        u3: adder PORT MAP(a(3), b(3), c3, cout, sum(3) ) 
    ); 
END full_add_arch; 


就像我之前强调过的那样,所谓FP就是把Function看作函数(亦即映射)而不是像命令式程序里那样看作“作用”。而硬件描述语言处理的都是高低电平,连接signal的都是两个管脚之间的冷冰冰的导线,注定导线的两边电平是相同的。这也就决定了它的function就像方程等号的两边一样是等价的,可互换的。这才保证了function的函数身份。
初中数学导入函数概念的时候就是从方程来的。而高中数学导入函数概念是从来不离开映射的概念的。
其实我也只是看到一个Map语句才一下想到函数式的。何为Map?不就是映射吗。

你可能感兴趣的:(C++,c,C#,FP)