Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Normalize commutative operations

未关闭
#40 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
5/5
预计耗时
一周以上
新手友好度
35/100
Issue 类型
功能
描述清晰度
需要澄清
活跃度
停滞
技术栈
clojure
领域
tooling

调研方向

该 issue 将交换规范化确定为目标,并指出了 =、+ 以及多元数函数体;首先定位 representer 现有的规范化逻辑及其对这些形式的处理。定义一个确定性的标准顺序,并验证等价的排列会产生一个表示,同时保留相同的面向学生的反馈。

由索引模型根据 Issue 内容生成。

描述

It never ceases to amaze me how many unique solution approaches there are even with all the normalizations we're doing. It's like ice cream flavors. 31 flavors sounds like a lot, but that can be achieved with like 5 or 6 basic flavors and their permutations.

After spending some time analyzing its results, the next "low-hanging fruit" seems to be:

Identifying which operations are commutative, and presenting them in some standard order.

At first glance it seems like we're scraping the bottom of the barrel, so to speak. But because of the way the possible permutations are composed, even the smallest thing can drastically reduce the number of unique representations, which practically translates to having fewer approaches to add feedback to to be displayed to the same number of students.

For example, a solution to the lasagna exercise might have: (+ (num-layers 2) 5), and another might have (+ 5 (num-layers 2)). Having to repeat the same feedback on every combination becomes tedious.

Commutative operations which can be normalized

  • =
  • +
  • multi-arity function bodies
    . . .

Again, these seem very minor, but the path to making the representer more effective lies in making these incremental improvements

主要语言
Clojure
星标
2
派生
7
平均合并
8 分钟
30 天内合并 PR
1

环境准备

我们还没有检查这个项目的环境配置文件。先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

exercism/clojure-representer 的其他 Issue

查看 exercism/clojure-representer 的全部 Issue

相似的 Issue

更多 Clojure Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。