iT邦幫忙

鐵人檔案

2022 iThome 鐵人賽
回列表
Software Development

Functional Programming with C# 系列

C#作為一個OOP語言拿來寫FP? 有沒有搞錯?
其實C#有不少FP的特性,像是寫C#不可不知的Linq
本系列打算從C#的delegate、pattern match、record等等開始
慢慢了解FP的設計風格
讓我習慣OO的腦袋突破舒適圈

鐵人鍊成 | 共 30 篇文章 | 9 人訂閱 訂閱系列文 RSS系列文 團隊問一下神奇海螺叫什麼
DAY 21

Day21. SelectMany(2)

接續昨天,我想要對這段程式碼做改善 var result = await GetMemberByNameAsync(name) .TaskBind(...

2022-10-02 ‧ 由 marvinhsu 分享
DAY 22

Day22. Query-Expression Pattern

Summary of my #laser12 lectures in less than 144 characters: LINQ == monads, as...

2022-10-03 ‧ 由 marvinhsu 分享
DAY 23

Day23. Rx(1)

在C#中有一個強大的monad - IObservable,這個盒子包裝了一個要被觀察的物件,今天先簡介一下基本概念 觀察者-被觀察者 先觀察IObservab...

2022-10-04 ‧ 由 marvinhsu 分享
DAY 24

Day24. Rx(2)

今天要介紹IObservable-IEnumerable-Task這三者的關係 IEnumerable IEnumerable代表的是一組資料序列,而IObse...

2022-10-05 ‧ 由 marvinhsu 分享
DAY 25

Day25. Rx(3)

昨天的範例將資料序列與非同步作業結合,但Rx可以結合事件驅動,我想要把準備好的名單換掉,改成由Console視窗決定資料來源,首先要準備好Observalbe來...

2022-10-06 ‧ 由 marvinhsu 分享
DAY 26

Day26. Rx(4)

鐵人賽寫到後來覺得好偷懶,把Rx.net的內容拆到第四篇來講了,今天要來介紹雙事件流的情況。 對兩個數據來源進行合併 假設我有一個投資帳戶,裡面具有一定數量的乙...

2022-10-07 ‧ 由 marvinhsu 分享
DAY 27

Day27. Lazy Evaluation

昨天原本想要寫利用rx傳遞事件狀態來寫個接收摩斯密碼的小程式,但發現我對IObservable物件的生命週期掌握不好導致結果難以預期就只好放棄了…..。今天蜻蜓...

2022-10-08 ‧ 由 marvinhsu 分享
DAY 28

Day28. Concurrency

接下來的內容十分困難,如果有誤請見諒。一般來說,在遇到併發問題,最常遇到的困擾是多個不同的執行緒需要讀寫相同的資料,這時候發生競爭,就會產生意想不到的結果。舉個...

2022-10-09 ‧ 由 marvinhsu 分享
DAY 29

Day29. Actor model

Actor model是一個物件導向與函數導向混合的例子,在併發的情況下需要避免相同狀態的共享,也就是說作業要避免讀寫同一個資料來源。如果能夠將作業拆分,就可以...

2022-10-10 ‧ 由 marvinhsu 分享
DAY 30

Day30. 結語

終於來到第30天了,來說說我的心得吧!當初選這個題目主要是因為想要學其他語言,於是接觸到了FP範式,雖然還是可以用類似物件導向的方式做出想要的功能,但總覺的跟語...

2022-10-11 ‧ 由 marvinhsu 分享