iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Software Development

在 Neovim 中探索 Fennel 與函數式編程 系列

在 AI 時代,開發者需要思考新的開發範式:『AI 幫助我們快速生成 code ,但除錯與驗證仍需要開發者積極介入。』本系列文將從 Neovim + Fennel 切入,帶著讀者來進入「互動式開發」與「函數式編程」的新世界。

內容包含:
* Fennel 語言:語法、常用函式庫。
* Lisp 思維:S-expression 編輯、互動式開發 。
* 函數式編程:純函數、map/filter/reduce 等實務技巧。
* Neovim Plugin 開發:從簡單腳本到完整的 plugin。

讓我們在 AI 時代,一起探索更聰明、更優雅的程式開發之道。

參賽天數 23 天 | 共 23 篇文章 | 3 人訂閱 訂閱系列文 RSS系列文
DAY 11

Lisp 深入淺出—資料導向編程

有一個對 Clojure 評論是這樣子:「Clojure 是一種 Lisp ,但是因為有獨特的品味,難以歸類於傳統的 Lisp 。」 基本上,程式語言只要語法使...

2025-09-11 ‧ 由 Laurence Chen 分享
DAY 12

深入淺出函數式編程 (FP)—高階語意

一般而言,在業界主張要使用函數式編程 (FP) 的理由主要有兩個: 開發速度快。 減少 bug 。 另一方面,反對使用函數式編程的理由主要也有兩個: 懂這...

2025-09-12 ‧ 由 Laurence Chen 分享
DAY 13

深入淺出函數式編程 (FP)—定義的難題

很多學習 FP 的初學者,接觸 FP 不久,就產生了兩個很大的疑問: 我會用 map, filter, reduce 了,那我算是會 FP 了嗎? FP 的...

2025-09-13 ‧ 由 Laurence Chen 分享
DAY 14

深入淺出函數式編程 (FP)—常見的機制

在前一篇談到了函數式編程的概念與實作分離的觀點,那實作上有什麼 FP 的機制 (mechanism) 是我們在一般的編程可以使用的呢?不論是 Neovim 插件...

2025-09-14 ‧ 由 Laurence Chen 分享
DAY 15

深入淺出函數式編程 (FP)—進階議題

終於到了 FP 的第四篇了,本篇是 FP 的最後一篇,要來談一些 FP 的進階議題: 函數式編程慣用法 FP 與程式碼復用 (code reuse) 函數式...

2025-09-15 ‧ 由 Laurence Chen 分享
DAY 16

Neovim 插件開發—起步

之前的文章探討了 Fennel、Lisp、函數式編程等概念。從現在開始,我們要開始那些將那些概念應用在 Neovim 的插件開發了。首先,先談一個失敗的學習經驗...

2025-09-16 ‧ 由 Laurence Chen 分享
DAY 17

Neovim 插件開發—Hello World

在 day16 的最後談到了,我們可以在 ~/.config/nvim/fnl 資料夾下,建立可以跟 Neovim 一起工作的插件。最關鍵的 Neovim Ru...

2025-09-17 ‧ 由 Laurence Chen 分享
DAY 18

Neovim 插件開發—標準插件

在 day17 我們示範了插件的 Hello World 。顯然複雜一點的插件不會是只有單一的檔案,此外,我們也會希望插件是可以安裝的,所以這篇就要來示範標準插...

2025-09-18 ‧ 由 Laurence Chen 分享
DAY 19

Neovim 插件開發—如何除錯?

有兩種 Runtime 的知識,對於除錯特別有用: 如何檢查 Runtime 的內部狀態? Runtime 內部的執行順序為何? 檢查內部狀態 有幾種方法可...

2025-09-19 ‧ 由 Laurence Chen 分享
DAY 20

專案研討—auto-conjure

auto-conjure 是我第一次開發 Neovim 插件的作品,也因此,它非常地簡單。 讀者在設定自己的第一個 Neovim 插件題目時,不妨問問自己,我的...

2025-09-20 ‧ 由 Laurence Chen 分享