Nota Caesaris

Quasus

Civis Illustris
Zbqbori, pf Zxbpxobi fifqxkqbp hfqqboxp j bq v brfqxirp, klkkb bxbabi bszfmfbkaxb prkq ab oxqflkb klqxori?
 
Nrfa dbkqfrj ilnrfjfkbf?!
 

Quasus

Civis Illustris
> Qfjbl rq ljkfx nrxb pzofmpfpqf klk zxmfxj.

Cum scribis latine, litteras j et v evitas, sed en in notis j apparet. Quonam alphabeto utendum est nobis, vetere an recentiore, v et j et w additis?
 

Dantius

Homo Sapiens
Staff member
Caesar certe cum per notas scribebat, litteris quae sunt "j" "w" "v" non utebatur. Ego ergo opinor, si Latine per Caesaris notam scribamus, solis Latinis litteris nobis scribendum esse. Sed non magni refert quid ego sentiam; non enim in hoc filo scribo nec scribere volo.
 

Quasus

Civis Illustris
Fortasse quia deest tibi, o Danti, programma convertor. Si Lispo Communi uteris, ecce meum:
Code:
;;;; LICENTIA: FAC QVOD VIS
 
(defpackage #:caesar
  (:use #:cl)
  (:export #:encode
          #:encode-with-casing
          #:latin23
          #:latin26))
 
(in-package #:caesar)
 
(defun try-encode-char (char key shift)
  (let ((p (position char key)))
    (and p (char key (mod (+ p shift) (length key))))))
 
(defun encode (string shift key)
  (unless (listp key)
    (setf key (list key)))
  (with-output-to-string (s)
    (loop for char across string
          for encoded-char = (loop for k in key
                                   for e = (try-encode-char char k shift)
                                   when e
                                   do (return e)
                                   finally (return nil))
          do (write-char (or encoded-char char) s))))
 
(defun encode-with-casing (string shift minuscules)
  (encode string shift (list minuscules (string-upcase minuscules))))
 
(defun latin23 (string shift)
  (encode string shift '("abcdefghiklmnopqrstuxyz" "ABCDEFGHIKLMNOPQRSTVXYZ")))
 
(defun latin26 (string shift)
  (encode-with-casing string shift "abcdefghijklmnopqrstuvwxyz"))
Exempla:
Code:
CAESAR> (latin23 "Salue!" -3)
"Pxhrb!"
CAESAR> (latin23 "SALVE" -3)
"PXHRB"
 

Issacus Divus

H₃rḗǵs h₁n̥dʰéri diwsú
Zro klk?
 
Top