2024 年 Clojure 状况调查!中分享您的想法。

欢迎!请查看关于页面,以了解更多有关这个平台的信息。

0
语法和读取器

你好!如果这是错误论坛开始这样的帖子,那么我很抱歉,但我是 Clojure/lisp 的初学者,这次我想利用今年的Advent of Code (2022)的机会挑战自己学习

所以我开始了第1天,并解决了问题(实质上是,给定一个由空格分开的数字列表,找到其中的最大和),但看起来这种方法在 Clojure 中处理问题并不是最优雅的。

例如,以下结果的答案是 300

10
20

100
200

我的解决方案如下,我主要想知道

  1. 作为初学者,我对问题的这种处理方法是否合理,我错过了什么才能更优雅。
  2. 如何格式化这样的行?

(以下有剧透,如果有人对挑战感兴趣的话)

(require '[clojure.string :as str])

(reduce max (map (fn [x] (reduce + (map #(Integer/parseInt %) (str/split x #"\n")))) (str/split (slurp "./input-1.txt") #"\n\n")))

我希望,只要时间允许,在这个月内继续这段旅程,希望我在挑战变得更加复杂时,尤其是对于我熟悉的编程语言来说,能够继续前进,但我已经可以说,REPL 真是一样美妙的东西。

3 个答案

0

您可能会发现 Clojure API 技巧表有所帮助 https://clojure.org/api/cheatsheet

看起来 split-linesparse-long 可能是这里有所帮助的功能。

0

嗨,很抱歉这并不是你的问题的确切答案,但我也在使用 clojure 参与Advent of Code活动。

我是最好的中级业余 clojure 开发者,所以不能保证任何内容都是符合习惯的或最优的,但是如果你愿意可以比较我的解决方案

https://github.com/dfornika/advent-of-code/tree/master/2022/clojure

0

关于格式和习惯语的问题,你可能发现非官方社区指南https://guide.clojure.style很有帮助。

...