d中组件式编程.
原文
作者:HS Teoh
组件式编程:易写,易读,易重用来实现复杂算法.
复杂性来源:结构冲突与循环.结构冲突:程序和数据结构不匹配.
组件编程
关键点是代码应对应数据结构.惰性求值序列和流来类比管道来处理数据.
研究格式化日历
由于日历与输出结构不匹配,因为一行输出可能是2个/3个月.
用组件编程,先确定,要完成任务需要的结构:
序号 | 结构 |
|---|---|
1 | 按年生成日期 |
2 | 按月分组日期 |
3 | 按周分组日期 |
4 | 周中格式化天数 |
5 | 分组格式化周为月 |
6 | 栅中水平布局(多少)月份来形成行 |
7 | 输出每个栅行 |
8 | 输出所有行 |
区间
生成数据源,带3个空的,前,弹前成员函数.前向有save(保存)函数.这样,可多次迭代.
其他任务,相当于是过滤器.有了组件,用胶水代码粘贴起来就行了.
/*返回:给定年中的日期区间.*/
动 年中日期()(整 年)
{
中 日期(年,1,1)
.再现!((a,n)=>a[n-1]+1.天)
.直到!(a=>a.年>年);
}
再现允许我们从初值通过编程生成区间.指定生成日期的关系.直到限制为指定年.
返回类型,只能用动,用户不知道具体类型.
按月分组日期,按月分组该区间为区间的区间.
详细代码在此
浙公网安备 33010602011771号