
tags: Java Lambda JDK8 Functional Programming 惰性
Java 開發者的函數式程式設計(6)惰性
By caterpillar | 2013/08/13有許多觀念是可以同時套用在命令式及函數式的程式設計上,實際上,許多語言現在都支援多典範(Multi-paradigm)程式設計,即使 Java 是命令式語言、支援抽象資料型態、提供可變的變數及物件也不例外。唯一的問題就是,你是否有能力掌控這些特性?

tags: Java Lambda JDK8 Functional Programming 預設方法
Java 開發者的函數式程式設計(5)JDK8 預設方法
By caterpillar | 2013/08/06讓我們回歸到 Java 的現實世界吧!Java 的語法是用來定義抽象資料型態,以命令式風格來撰寫程式,它允許可變動的變數與物件,所以之前的文章是純屬娛樂嗎?
JavaFX Layout Part 1
By Michael | 2013/08/05設計一個應用程式需要的畫面,應該要先選擇適合的畫面配置方式,JavaFX提供這些主要的畫面配置元件,它們可以包含一些需要的元件,組合成應用程式需要的畫面…
Java 開發者的函數式程式設計(4)不可變特性
By caterpillar | 2013/07/31如果程式流程中有可變的變數,因為要改變它們的值太簡單了,反而使得問題難以切割為子問題;使用了非區域變數的方法可能有副作用,也就是說,在給定相同引數的情況下,方法可能傳回不同的結果,因為這些方法有看不到的輸入與輸出;如果物件狀態可變,物件就會是副作用的集合體...

tags: Java EJB Java EE Session Bean
李小e 的 EJB 奮鬥札記(一)Session Bean 的存取模式與介面
By Eric | 2013/07/26在 2013/05/28 所推出的EJB 3.2 新規格,雖不像 3.1 時那般的大刀闊斧,但仍舊承襲了簡化 EJB 的精神,將 Entity Bean及 JAX-RPC 為基礎的 Web Service 端點(End Point)等相關技術移出主要規格外,使 EJB 的規格一分為二:核心(Core)與非必要(Optional)兩種...
Java 開發者的函數式程式設計(3)List 處理模式
By caterpillar | 2013/07/24如果以函數式風格來編寫程式,你會很容易發覺函式間具有相近結構,因而能輕易地提煉為更高階的抽象以進行重用,這邊提到的 filter、map 與 reduce 就是個不錯的例子。一旦你能夠函數式地思考,你就能夠發現更多高階的抽象。

tags: Java guava-libraries Range DiscreteDomain 教學 DSL
【Guava 教學】(8)你需要的其實是範圍(Range)?
By caterpillar | 2013/07/23實際上,你需要的或許只是範圍,那麼用 Range 就足夠了,如果真的需要逐一取得範圍中的不連續元素,搭配 DiscreteDomain 就可以達到目的,而且不用一開始就建立所有的元素,只需在必要的時候取用即可。
Java 開發者的函數式程式設計(2)代數資料型態
By caterpillar | 2013/07/19我們大多熟悉物件導向程式設計,熟悉抽象資料型態(Abstract data type, ADT)。抽象資料型態的模型中封裝了資料結構與實作,僅透露互動時的公開介面;然而,代數資料型態(Algebraic data type)相對地曝露了基本的資料結構及規律性,在函數式程式設計的領域中,代數資料型態是基本元素。
【Guava 教學】(7)Multiset、Multimap 與 BiMap
By caterpillar | 2013/07/18如果有個清單,想要取得清單中不重複的元素,最快的方式就是使用 JDK 中的 Set。如果不單只是計數,在後續迭代時也想要取得重複元素呢?程式碼當然可以自己撰寫,只不過 Guava 的 Multiset 實作將這些細節都封裝起來了…

tags: Java Lambda Functional Programming
Java 開發者的函數式程式設計(1)初探函數式程式設計
By caterpillar | 2013/07/15如果使用的語言並非函數式語言,你不能不假思索地直接套用函數式設計的所有概念,否則就有可能事倍功半,可讀性與效能都會變差。如果你想進行純函數式程式設計...只有先瞭解函數式設計的本質,才可以讓我們明瞭,如何適當地擷取函數式設計的概念。