iT邦幫忙

functional programming相關文章
共有 288 則文章
鐵人賽 Software Development DAY 5

技術 mostly:functional 第四章:還不確定的東西與計算的過程

語句只在理解它們的人那裡擁有意義。語句捕捉了我們的想法,而想法本身,遠比我們用來描述它的詞彙更為重要。 -- Daniel P. Friedman and D...

鐵人賽 Software Development DAY 4

技術 mostly:functional 第三章:容器與莊園

通往地獄的路,都是由善意所鋪成的。 -- Friedrich August von Hayek 哈哈,你注意到了,對吧?飄浮在我們旁邊一閃一閃的那些。那個...

鐵人賽 Modern Web DAY 9

技術 Day 9 - Functional Programming 初探 (2) - Currying 與 Composition

前言 今天會繼續來聊聊 FP 的一些重要觀念,而且會更偏向實際的做法,看看 Javascript 怎麼結合昨天聊到的 First-class、HoF、pure...

鐵人賽 Modern Web DAY 6
學會Elm寫前端 系列 第 6

技術 06 認識Elm裡的類別(type system)

終於要說到types了 Elm裡的type system相對haskell做了不少簡化,一個是 type alias ,一個是 union type。先來說說t...

鐵人賽 Modern Web DAY 27

技術 Day 27 :第三方函式庫(2):從 Lodash.js 深入了解 JavaScript

Lodash 這個函式庫中,提供了高達上百種的方法,有些方法可以說是原生 JavaScript 的加強版,或是將原有的原型方法包裝成純函式。 除了在實務開發時,...

鐵人賽 Modern Web DAY 9

技術 Day 9 :何謂 Immutable Data?(1):關於 Immutable 與 Mutable(修正版)

在一開始的簡介中我們曾經聊過構成 FP 的幾個要素,其中一點是,在 FP 這個設計典範中我們只使用 Immutable Data 來進行資料的處理。 為什麼「只...

鐵人賽 Software Development DAY 8

技術 mostly:functional 第七章:不存在的名字、自由的樣貌

名字裡究竟有什麼?如果玫瑰不叫玫瑰,它還是一樣的芳香。 -- 莎士比亞, 哈姆雷特 雨,開始下起來了。空氣中滿是潮溼的香氣,隨著雨滴打在道路及建築上的聲音...

技術 mostly:functional 謝幕與片尾曲

The future is already here – it's just not evenly distributed.未來早就來臨了,然而它並不是平均分...

鐵人賽 Software Development DAY 10

技術 mostly:functional 第九章:高階函式與它們的產地

在街道上走著,四周空無一人。雨,無聲下了起來。 稍微加快了步伐向前,才想到我似乎還不知道要往哪裡去。然後我注意到打在路面的雨,以及踩上那雨的我的腳,忽然有一種感...

鐵人賽 Software Development DAY 7

技術 mostly:functional 第六章:王國的改革、觀點的困境

我的語言的界限,即是我的世界的界限。 -- 路德維希·維根斯坦, 邏輯哲學論 回過神來,才發現窗外愈來愈暗,淺灰色的雲,不知從何時開始,已在這個城市的上空...

技術 SICP Lec5b:計算對象 (數位電路模擬器 - part 1)

以下是對於 MIT SICP 課程影片(lec 5b)的心得記錄,part 1 為 [開始~31:00] 左右 當我們要開發一組非常複雜的程式,且讓程式可以被修...

鐵人賽 Software Development DAY 7

技術 [RxJava] Observable and error handling

上次的解答, fold 在之後還會看到它的,在 functional programming 中是一個常見的 operator: fun fold(succes...

鐵人賽 Modern Web DAY 6

技術 Day 6 - Function 時空旅行 (1) - 參數優化

前言 Array 跟 Object 兩兄弟的故事告一段落了,接著是 Object 在外面養(?)的另外一個兄弟 - function 浪漫一點來說,functi...

鐵人賽 Software Development DAY 16

技術 Reader Monad

相依注入 - Dependency Injection ,對於 OOP 來說是一個很重要的概念,各框架、語言也都有非常多的函式庫可以用。主流的注入的方法主要有兩...

鐵人賽 Software Development DAY 10

技術 Category theory

在本文開始之前先打個預防針,我學習 Category theory 的時間其實沒有多長,所以如果以下或之後的內容有誤,或是有不完善的地方請各位多多包含。另外為了...

鐵人賽 Software Development DAY 24

技術 Monad: a Monoid in the Category of EndoFunctors

終於要來解釋這句話了,距離上一次出現這句話時,我們都還不知道 Monoid, Category, Endofunctor 是什麼,現在除了 Endofuncto...

鐵人賽 Software Development DAY 26

技術 所以 Monad 到底哪裡好用了?

在剛接觸 Monad 這名詞時,我相信一定很多人都很好奇 Monad 是甚麼,所以就會開始上網搜尋,然後就會找到下面這個版本,在這個版本中,使用了透明盒子來比喻...

鐵人賽 Software Development DAY 11

技術 mostly:functional 第十章:自我指涉的藝術

GNU 是 GNU is not UNIX! 的縮寫。--- 維基百科 天氣放晴了,但風吹在身上卻開始有些涼意了。 一邊說著差不多該是離開前往下一個城市的...

鐵人賽 Software Development DAY 23

技術 Day 23 - Either Monad

到目前為止,我們介紹 Maybe Monad 其是專門處理無值情境以及 IO Monad 則是處理同步計算的 effect,例如 console.log, lo...

鐵人賽 Software Development DAY 9

技術 Day 09 - Type Signature

yo, what's up? 到目前為止,目前我們把最基本的概念 pure function, curry, compose 到比較進階概念 lens, tra...

鐵人賽 Software Development DAY 16

技術 mostly:functional 第十五章:失落的計量

是的,我已然熟知各種辯證的法則騰挪與算計之後得出人生是牆角一條很有歷史感的枯藤最終的弧線折成一道帶來龐沛記憶的鋒面憂傷降臨,城市彷彿是被一場雨狠狠埋葬的夜樹顏...

鐵人賽 Software Development DAY 12

技術 Algebraic Data Type

Algebra ,也就是代數,大家國小都學過,可以由簡單的加法與乘法組合而成,在 Category theory 中,也有著這樣的概念,甚至可以將這些概念應用在...

鐵人賽 Software Development DAY 9

技術 mostly:functional 第八章:急躁的,耐心的,以及還不完整的。

要怎樣定義一個人呢?看他一無所有時的耐心,及擁有一切時的態度。--- 諺語 "你喜歡吃咖喱嗎?",一路淋著毛毛細雨,我們晃到一家餐廳。...

鐵人賽 Modern Web DAY 26

技術 Day 26 :第三方函式庫(1):初識Lodash.js

在先前的章節中,我們了解到要如撰寫純函式、科里化,甚至是透過高階函式與複合函式的手段,讓我們的函式重組性、復用性更高。 但如果到目前為止,這些概念對於你來說,都...

鐵人賽 Software Development DAY 7

技術 Day 07 - Transduce I

從一個簡單的問題開始 假設我們目前有一組長度為一百萬的陣列,需要將陣列內的每個數值乘三並且只保留偶數,那我們會如何實作這簡單的問題? 根據上面的問題,我們在實作...

鐵人賽 Modern Web DAY 3

技術 Day 3:初探設計典範(2):FP 簡介(修正版)

在前一章節中,我們花了很多的篇幅來聊 FP 這個程式設計的演進史,從中不難看出由於 JavaScript 的基因設定本來就會帶有多設計典範(Multi-para...

鐵人賽 Software Development DAY 10

技術 Day 10 - Algebraic structure

yo, what's up 本章要來介紹 FP 的重要觀念,Algebraic structure! What's Algebraic structure?...

鐵人賽 Modern Web DAY 5

技術 Day 5:JavaScript 型別與他們的地雷(2):{ } === { } ?

在上個章節,我們聊到 JavaScript 其實是一種非常容易、不小心就變動到變數值的一種語言,這其實與它底層運作的記憶體位置有關,這說起來有點抽象,我們先來看...

鐵人賽 Software Development DAY 8

技術 Day 08 - Transduce II

review 上一篇介紹了 transduce 基本概念後,就可以知道 transduce 就是對資料結構進行 transform 並 reduce, 其核心...

鐵人賽 Software Development DAY 15

技術 mostly:functional 第十四章:再一次遞迴,然後…

自由的數字帶來了什麼呢?當人們可以無視單位,專注在數字上之後,我們可以開始討論數字本身的性質,及數字與數字之間的關係。 --- taiansu, mostly...