fork download
  1. (defun fortunecookie ()
  2. (princ "名前または学籍番号を入力:")
  3. (let* ((id (read-line))
  4. ;; 日付の取得(年月日)
  5. (date (multiple-value-bind (sec min hour day month year)
  6. (get-decoded-time)
  7. (format nil "~4,'0d~2,'0d~2,'0d" year month day)))
  8. ;; 名前と日付を結合
  9. (combined (concatenate 'string id date))
  10. ;; 文字コードの合計でシードを擬似生成
  11. (seed (reduce #'+ (map 'list #'char-code combined)))
  12. ;; 新しいランダム状態を作成(seedを使った擬似的な初期化)
  13. (state (make-random-state t)))
  14. ;; ランダム状態を初期化(簡易的に乱数を飛ばすことでseedを反映)
  15. (dotimes (i (mod seed 100)) (random 100 state))
  16. ;; ランダムな結果を取得
  17. (let* ((index (random 5 state))
  18. (result (nth index
  19. '("大吉! 挑戦を続けよう"
  20. "中吉! 今日は集中の日"
  21. "小吉! まずは一歩"
  22. "吉! 粘り勝ちを目指そう"
  23. "凶...でも明日がある!"))))
  24. (format t "結果:~A~%" result))))
  25.  
  26. (fortunecookie)
Success #stdin #stdout #stderr 0.01s 9568KB
stdin
原彰吾
stdout
名前または学籍番号を入力:結果:小吉! まずは一歩
stderr
Warning: reserving address range 0x80000c0000...0x1fffffffffff that contains memory mappings. clisp might crash later!
Memory dump:
  0x8000000000 - 0x80000bffff
  0x14e51b400000 - 0x14e51b6e4fff
  0x14e51b815000 - 0x14e51b839fff
  0x14e51b83a000 - 0x14e51b9acfff
  0x14e51b9ad000 - 0x14e51b9f5fff
  0x14e51b9f6000 - 0x14e51b9f8fff
  0x14e51b9f9000 - 0x14e51b9fbfff
  0x14e51b9fc000 - 0x14e51b9fffff
  0x14e51ba00000 - 0x14e51ba02fff
  0x14e51ba03000 - 0x14e51bc01fff
  0x14e51bc02000 - 0x14e51bc02fff
  0x14e51bc03000 - 0x14e51bc03fff
  0x14e51bc80000 - 0x14e51bc8ffff
  0x14e51bc90000 - 0x14e51bcc3fff
  0x14e51bcc4000 - 0x14e51bdfafff
  0x14e51bdfb000 - 0x14e51bdfbfff
  0x14e51bdfc000 - 0x14e51bdfefff
  0x14e51bdff000 - 0x14e51bdfffff
  0x14e51be00000 - 0x14e51be03fff
  0x14e51be04000 - 0x14e51c003fff
  0x14e51c004000 - 0x14e51c004fff
  0x14e51c005000 - 0x14e51c005fff
  0x14e51c180000 - 0x14e51c183fff
  0x14e51c184000 - 0x14e51c184fff
  0x14e51c185000 - 0x14e51c186fff
  0x14e51c187000 - 0x14e51c187fff
  0x14e51c188000 - 0x14e51c188fff
  0x14e51c189000 - 0x14e51c189fff
  0x14e51c18a000 - 0x14e51c197fff
  0x14e51c198000 - 0x14e51c1a5fff
  0x14e51c1a6000 - 0x14e51c1b2fff
  0x14e51c1b3000 - 0x14e51c1b6fff
  0x14e51c1b7000 - 0x14e51c1b7fff
  0x14e51c1b8000 - 0x14e51c1b8fff
  0x14e51c1b9000 - 0x14e51c1befff
  0x14e51c1bf000 - 0x14e51c1c0fff
  0x14e51c1c1000 - 0x14e51c1c1fff
  0x14e51c1c2000 - 0x14e51c1c2fff
  0x14e51c1c3000 - 0x14e51c1c3fff
  0x14e51c1c4000 - 0x14e51c1f1fff
  0x14e51c1f2000 - 0x14e51c200fff
  0x14e51c201000 - 0x14e51c2a6fff
  0x14e51c2a7000 - 0x14e51c33dfff
  0x14e51c33e000 - 0x14e51c33efff
  0x14e51c33f000 - 0x14e51c33ffff
  0x14e51c340000 - 0x14e51c353fff
  0x14e51c354000 - 0x14e51c37bfff
  0x14e51c37c000 - 0x14e51c385fff
  0x14e51c386000 - 0x14e51c387fff
  0x14e51c388000 - 0x14e51c38dfff
  0x14e51c38e000 - 0x14e51c390fff
  0x14e51c393000 - 0x14e51c393fff
  0x14e51c394000 - 0x14e51c394fff
  0x14e51c395000 - 0x14e51c395fff
  0x14e51c396000 - 0x14e51c396fff
  0x14e51c397000 - 0x14e51c397fff
  0x14e51c398000 - 0x14e51c39efff
  0x14e51c39f000 - 0x14e51c3a1fff
  0x14e51c3a2000 - 0x14e51c3a2fff
  0x14e51c3a3000 - 0x14e51c3c3fff
  0x14e51c3c4000 - 0x14e51c3cbfff
  0x14e51c3cc000 - 0x14e51c3ccfff
  0x14e51c3cd000 - 0x14e51c3cdfff
  0x14e51c3ce000 - 0x14e51c3cefff
  0x55e6ab3a7000 - 0x55e6ab497fff
  0x55e6ab498000 - 0x55e6ab5a1fff
  0x55e6ab5a2000 - 0x55e6ab601fff
  0x55e6ab603000 - 0x55e6ab631fff
  0x55e6ab632000 - 0x55e6ab662fff
  0x55e6ab663000 - 0x55e6ab666fff
  0x55e6acaa1000 - 0x55e6acac1fff
  0x7fff6406d000 - 0x7fff6408dfff
  0x7fff641dd000 - 0x7fff641e0fff
  0x7fff641e1000 - 0x7fff641e2fff