commit 66f0049
Artur Manuel
·
2025-08-22 14:34:37 +0000 UTC
parent c528829
feat(emacs): add emacs lisp
1 files changed,
+40,
-0
+40,
-0
1@@ -0,0 +1,40 @@
2+;;; collatz.el --- collatz sequence in emacs lisp -*- lexical-binding: t -*-
3+
4+;; Author: Artur Manuel
5+;; Maintainer: Artur Manuel
6+;; Version: 0.0.0
7+;; Package-Requires: ()
8+;; Homepage: https://codeberg.org/amadaluzia/rosetta-collatz
9+;; Keywords: :D
10+
11+
12+;; This file is not part of GNU Emacs
13+
14+
15+;;; Commentary:
16+
17+;; Does exactly what you expect.
18+
19+;;; Code:
20+
21+(defun collatz (x)
22+ "Get the collatz number of X."
23+ (if (= (% x 2) 0) (/ x 2)
24+ (+ (* 3 x) 1)))
25+
26+(defun collatz--sequence (x)
27+ "Get the sequence of the collatz numbers of X without proper formatting."
28+ (if (= x 1) "1"
29+ (format "%d, %s" x (collatz--sequence (collatz x)))))
30+
31+(defun collatz-sequence (x)
32+ "Get the sequence of the collatz nummbers of X."
33+ (format "%d: %s" x (collatz--sequence x)))
34+
35+(let ((sequences (mapcar 'collatz-sequence (number-sequence 1 10000))))
36+ (dolist (sequence sequences nil)
37+ (print sequence)))
38+
39+(provide 'collatz)
40+
41+;;; collatz.el ends here