Skip to content

GeoDaoyu/js-fp-learning

Repository files navigation

JS 函数式编程 10 周学习计划

周一至周五学习,每日 2h,周末休息 全程禁用 for/while 循环,优先纯函数、数据不可变

进度总览

周数 阶段 主题 状态 完成日期
01 阶段一 纯函数 & 数组高阶方法 -
02 阶段一 闭包 & 不可变数据 -
03 阶段二 柯里化 + Compose/Pipe(压缩) -
04 阶段三 Ramda 基础 -
05 阶段三 Ramda 进阶 -
06 阶段四 Functor & Maybe -
07 阶段四 Either 异常处理 -
08 阶段四 Monad 单子 -
09 阶段五 Effect-TS 入门 -
10 阶段五 完整项目实战 -

目录结构

.
├── README.md           # 你在这里
├── plan.md             # 原始学习计划(详细日程)
├── notes/              # 每周/每日 学习笔记
├── exercises/          # 按周组织的代码练习
├── projects/           # 第10周结业项目
├── cheatsheet.md       # 持续更新的 FP 速查表
├── resources.md        # 学习资源 & 参考链接
└── .gitignore

每日学习节奏

  • 30-40 分钟 — 理论学习、看文章/视频、整理笔记
  • 80-90 分钟 — 手写代码练习
  • 10 分钟(可选)— 用 FP 写法刷一道 LeetCode

编码约束

  • 全程不使用 for / while 循环
  • 优先使用纯函数,副作用集中隔离
  • 数据不可变(不修改原数组/对象)
  • 所有练习文件存放在对应 exercises/week-XX/ 目录下

快速开始

# 测试当前周所有练习
npm run week:01

# 测试全部练习
npm test

# 单独运行某个文件(不跑测试,只看输出)
npm run run -- exercises/week-01-pure-functions/01-pure-functions.js

# 单独测试某个文件
node --test exercises/week-01-pure-functions/01-pure-functions.js

练习工作流

  1. 打开当天练习文件,在 === 在这里写你的代码 === 区域写实现
  2. 运行 npm run week:XX 查看测试结果
  3. 所有测试 # pass 全绿 → 完成,可以提交
  4. 遇到红叉看报错信息,改进实现

About

10 周 JavaScript 函数式编程学习计划 — 从纯函数到 Monad,50 个渐进练习 + 在线教程

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors