一句话:经验报告揭示学生组合高阶函数时,结构化组合与管道组合的难度差异,并讨论函数式编程教学启示。
本文关注函数式编程教学中一个突出问题:当学生使用高阶函数进行组合编程时,不同组合形式带来的难度感知存在鲜明差异。随着越来越多程序员为数据处理而学习函数式编程,这一差异尤为重要。作者指出,结构化组合与管道组合之间似乎存在某种反直觉的难度区别。作为经验报告,文章描述了该现象,提供了初步证据表明两种组合方式在难度上确有不同,并据此提出对函数式编程教学法的若干后果与建议。该工作并非提出新语言机制或形式化方法,而是从教学实践与学习者体验出发,识别高阶函数组合教学中的一个关键区分,为后续实证研究与课程设计提供方向。
In teaching students to program with compositions of higher-order functions, we have encountered a sharp distinction in the difficulty of problems as perceived by students. This distinction especially matters as growing numbers of programmers learn about functional programming for data processing. We have made initial progress on identifying this distinction, which appears counter-intuitive to some. We describe the phenomenon, provide some preliminary evidence of the difference in difficulty, and suggest consequences for functional programming pedagogy.
@article{paperbot1494,
title = {Structural versus pipeline composition of higher-order functions (experience report)},
author = {Elijah Rivera and Shriram Krishnamurthi},
journal = {Proceedings of the ACM on Programming Languages},
volume = {6},
number = {ICFP},
year = {2022},
doi = {10.1145/3547633}
}