1.什么是函數(shù)式編程馒闷?
函數(shù)是一等公民,一切都是函數(shù)痪署。
2.常用語言?
Lisp各種方言:Common Lisp:開發(fā)兄旬、Scheme:數(shù)學(xué)狼犯、Clojure:JVM
Haskell:數(shù)學(xué)
Erlang:開發(fā)(類似Haskell)
Functional Javascript:Web開發(fā)(函數(shù)式模式下的Javascript)
Python:開發(fā)(據(jù)說借鑒Haskell)
3.一些例子余寥?
(P.S.以下例子用的是偽代碼,看得懂就行悯森。)
({X}的意思是獲取X的每一個(gè)元素宋舷,返回一個(gè)數(shù)組。)
1.快速排序
定義:
在序列中瓢姻,以某一個(gè)數(shù)(一般是sequence head)為基準(zhǔn)數(shù)祝蝠,將小于它的放在左邊,其他的放在右邊幻碱,之后對(duì)其左右進(jìn)行如此規(guī)則绎狭。
實(shí)現(xiàn):
qsort([])=[]
qsort([H|T])=qsort([<H || T]) . [] . qsort([>=H || T])
2.數(shù)獨(dú)
定義:
每行每列以及每個(gè)3*3組成的‘宮’中只允許1~9每個(gè)數(shù)字出現(xiàn)一次(也就是說從小到大排序后序列為[1,2,3,4,5,6,7,8,9])。
實(shí)現(xiàn):
check(X)=
sort({X})==sort({Transpose(X)})==sort(split({X},3,3))==repeat([1,2,3,4,5,6,7,8,9],9)