2024年Clojure状态调查!中分享你的想法。

欢迎!请参阅关于页面,了解这个工作原理的更多信息。

0 投票
语法和读取器

你好!如果这是一个错误的论坛来开始这样一个主题,我很抱歉,但我对Clojure/lisp是初学者,并且我想抓住这个机会以学习一点。

所以我开始了第一天的任务,并解决了问题(实际上,给定一个双空格分隔的数字长列表,找出其最大和),但看起来无论如何在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/很有帮助。

...