什麼讓 JavaScript 資料結構能夠被迭代? 了解 Iterator Protocol 與 Generator
你有想過為什麼陣列可以被迭代處理(`for...of`)但物件不行嗎?Iterables 背後仰賴 Iterator Protocol 來實踐可被迭代的資料結構。基於 Iterator Protocol 的概念更是伸展到 Generator Function 相關的知識點,可以創造更多特殊的資料結構。
你有想過為什麼陣列可以被迭代處理(`for...of`)但物件不行嗎?Iterables 背後仰賴 Iterator Protocol 來實踐可被迭代的資料結構。基於 Iterator Protocol 的概念更是伸展到 Generator Function 相關的知識點,可以創造更多特殊的資料結構。
Functor 的好處是:它讓我們能用同樣的方式操作不同的「容器型別」,想像成一個「裝值的盒子」,它允許我們對盒子裡的值進行運算,但同時又保留了盒子的結構。Functor 「提供了方式在容器裡操作值」,遵循同一性(Identity)與合成性(Composition)。
從先前 Functor 的概念出發,Functor 的 `map` 只能作用在數值上,而不能是「存在於容器中的數值」上,所以才需要 Applicative Functor,一種比 Functor 更多功能的結構,除了滿足 Functor 的功能外還能「讓盒子裡的函數作用(apply)到另一盒子的值」。
A coding style that emphasizes composing functions rather than handling specific data, defining functions without explicit parameters.
一種代碼風格,著重於函式的組合關係而非具體資料,定義函式時不顯式提其參數(points),而是透過函式組合與高階函式來表達資料流動。可以減少不必要的命名保持代碼簡潔與達成更好的通用組合性,但是額外的抽象須被理解與熟悉。透過兩個實際案例熟悉 Pointfree 開發風格。
一种代码风格,着重于函式的组合关系而非具体资料,定义函式时不显式提其参数(points),而是透过函式组合与高阶函式来表达资料流动。可以减少不必要的命名保持代码简洁与达成更好的通用组合性,但是额外的抽象须被理解与熟悉。透过两个实际案例熟悉 Pointfree 开发风格。
I'm not a mathematician and I'm not very interested in category theory, but it profoundly relates to advanced concepts of Functional Programming.
我不是數學家也對於範疇論沒有太大興趣,但它深刻的與 Functional Programming 進階理念掛勾,透過實戰了解開發層面這些理論可以如何撰寫更好維護的程式。Functor 是一種具有 map 方法的結構,允許對其中的值進行轉換同時保持結構不變、讓函數可以基於容器進行組合,意味著可以被用於封裝副作用或情境。
我不是数学家也对于范畴论没有太大兴趣,但它深刻的与 Functional Programming 进阶理念挂勾,透过实战了解开发层面这些理论可以如何撰写更好维护的程式。 Functor 是一种具有 map 方法的结构,允许对其中的值进行转换同时保持结构不变、让函数可以基于容器进行组合,意味着可以被用于封装副作用或情境。
Pursuing shorter wait times and faster feedback is crucial. However, rushing to present information may not be optimal.
最美好的使用體驗是即刻的,因此追求更短暫的等待時間越快越早的回饋很重要,然而倉促的將任何當下的資訊拋給用戶未必是最佳體驗,舉例來說:1.進入網頁 2.反饋「載入資料中……」3.顯示載入完成的資料,以上流程簡潔實在,會有什麼問題呢?問題出在時機和時間。
最好的用户体验是即时的,因此追求更短的等待时间和更快的反馈非常重要,然而匆忙的将任何信息显示给用户未必是最佳体验,举例来说:1.进入网页 2.反馈“加载数据中……”3.显示加载完成的数据,以上流程简洁实在,会有什么问题呢?问题出在时机和时间。
錯誤處理是所有程式都會遇到的問題,特別是在複雜的網頁開發中更是如此。本文將研究不同方法模式與語言探討如何「打造開發者友善的錯誤處理方式」。推薦演講:Unexpected Monad. Is Safe Error Handling Possible in JS/TS?
近期在遷移舊的 Element Plus 專案是必要找到另一款客戶端表單驗證方案,而在使用 Shadcn Vue 過程中發現 VeeValidate 是一款針對 Vue 製作的無頭表單驗證工具,你可以攜帶自己的 UI 整合,使用原生表單元件也不是問題。
Understanding "Polymorphism" is like "doing something, but the way it is done varies" For example, various "shapes" can "calculate area,"