什么是語法分析器?語法分析器是一種特別的程序昔馋,接受非結(jié)構(gòu)化數(shù)據(jù)(比如文本筹吐,任何類的符號、數(shù)字或者字符流)作為參數(shù)秘遏,輸出結(jié)構(gòu)化的數(shù)據(jù)作為結(jié)果丘薛。例如...
在Scala社區(qū),Scala是基于性質(zhì)測試庫的實現(xiàn)之一邦危。在本章我們將實現(xiàn)一個自己的測試庫洋侨,我們需要學(xué)習(xí)設(shè)計一個庫應(yīng)該做出哪些取舍舍扰,又應(yīng)該總結(jié)其中...
在上章節(jié)中我們介紹了如何使用java.util.current中的API來實現(xiàn)Par:這種純函數(shù)式的并行計算結(jié)構(gòu),但是最后我們也提出了這個實現(xiàn)存...
現(xiàn)在計算機往往都有多個CPU希坚,每個CPU都有多個核边苹,因此程序能否利用他們呢的并行處理能力就顯得十分重要了。但是并行程序之間的交互十分復(fù)雜裁僧,特別是...
在上一個章節(jié)中我們完成如下組合子:unit个束,map,map2聊疲,flatMap茬底,sequence和traverse。這些組合子并不是為處理隨機狀態(tài)...
純函數(shù)應(yīng)該如何來處理狀態(tài)获洲?我們可以先從生成隨機數(shù)這個例子開始下手阱表,先來看下如何以副作用的方式來生成隨機數(shù): 從上面的代碼可以推斷出rng對象中一...
所謂無限流指的就是長度無限的流,但是無限流并不會將內(nèi)存吃光昌妹,他只是對于表達式的描述捶枢,他是惰性的,甚至一個Stream在真正應(yīng)用前他所占用的內(nèi)存是...
再之前介紹函數(shù)式數(shù)據(jù)結(jié)構(gòu)的章節(jié)中我們介紹了List這種數(shù)據(jù)結(jié)構(gòu)飞崖,其中我們再List中實現(xiàn)了map烂叔,flatMap,filter等方法固歪,他們會接受...
在上一章節(jié)中我們介紹了Either的實現(xiàn)蒜鸡,在使用Either來校驗輸入的例子中我們提到了Either的一個缺陷,那就是Either只能收集一次錯...