由於 Docker 在本質上仍是個 Linux,只是多個 container 跑在同一個 Linux 上,因此若要將 Docker 跑在 macOS,仍然需要一個 VM 在背景跑 Linux。Docker for Mac 讓我們不用安裝其他 VM,就可以將 container 跑在 Docker 上。
點燈坊
封裝
是 OOP 三個重要的特色之一,也由於 封裝
,才導致了 多型
,而 繼承
則是實現多型的手段 (里氏替換原則
)。事實上 FP 也能完美實現 封裝
,關鍵就在於 Closure。
我們分別來看看 TypeScript、ReasonML 與 F# 如何以 Clsoure 達成 封裝
。
由於 Docker 在本質上仍是個 Linux,只是多個 container 跑在同一個 Linux 上,因此若要將 Docker 跑在 Windows,仍然需要一個 VM 在背景跑 Linux。Docker for Windws 內建支援 Windows 的 Hyper-V,只會在 Hyper-V 內跑一個極小的 Linux,如此其他 container 就能跑在 Docker 上。
Proxy Pattern 是 OOP 中著名的 Design Pattern,尤其可在不改變 interface 的前提下,就能控制該物件的使用,F# 既然是 Function First Language,就讓我們以 function 的角度重新實現 Proxy Pattern。
Proxy Pattern 是 OOP 中著名的 Design Pattern,尤其可在不改變 interface 的前提下,就能控制該物件的使用,隨著 FP 逐漸受到重視, Proxy Pattern 在實作上也有了新的面貌。
F# 的 List module 提供眾多 List
常用的 Higher Order Function,要能發揮 FP 的威力,首先必須能活用內建 function。
本文探討英文字母 Q ~ Z 開頭的 function。
F# 的 List module 提供眾多 List
常用的 Higher Order Function,要能發揮 FP 的威力,首先必須能活用內建 function。
本文探討英文字母 G ~ P 開頭的 function。
F# 的 List module 提供眾多 List
常用的 Higher Order Function,要能發揮 FP 的威力,首先必須能活用內建 function。
本文探討英文字母 A ~ F 開頭的 function。
F# 除了使用 .NET Framework 所提供的型別外,自己還定義了不少適合 FP 的型別,其中最常用的就是 List
,但這與 C# 的 List<T>
不同,反而類似 C# 的 ImmutableList<T>
。
Angular 提供 DI,讓我們能以依賴注入的方式將 servie 注入,若我們無法在 compile-time 就決定要注入的 service,一直要到 run-time 才能決定,我們該如何在 run-time 動態切換 service 呢?