[ create a new paste ] login | about

Link: http://codepad.org/O5SNo2cS    [ raw code | output | fork ]

Scheme, pasted on Sep 27:
(define key 1321)
(define shift_key 89)
(define message
  (list
   "7be74ba0064fadff11be121c981d7bd42880cd3991ea09"
   "49c0fb72cb2f5f0460c0081cb91768d01e84dee53da32689ef3e98fe4eacfe44b8065fc01278"
   "49cbfb95f458a4fd1d6a0765b61e6cd22c32cc3682964291ee4a9f0505b2ff55690460c72126d42675cf3593da2f99ae"
   ""
   "49c0fb78ee53adc6116afc6bcad579c5d989d02d8fdaf0"
   "49c34d99fb0db3b868afc35dc11a27d71e7bdd285c96268da84c98ac4eacb764b10b6e741375d12d7e8a248ad9ee9eef4ba5f0105dff5d681562bc1f25d21f82ce237f"
   "49f940540458a80c566a066bb91327d42832df2589e1ef9cf0fa98ed48a6b75fbd0a60c6db"
   ""
   "49c0fb72cb3aa701646a1a5dc8ce6bc91f78d42792e24356a12353f446b4fc10b7116f742279c41c31cb3195953d8da04d9af0049e025bb7185fb7cc71bf2577de2382d940"
   "49c0fb72cb4fadb8526a0f6bc31527d4227fd0f23dbfef90e23e5300545ef962be1563741c6cc5d87ee3e38cdd3e55"
   "49cbfb98f249a8fc56aec370c4ce7ec12b7f8b398d963ca1a12d96f44aabfc10bc0d64c019797f1978cb2c8aa1ee8be93da0b2585d0a50b3061abf1b73c5e330d3378ee8"
   "49f54aa1f206ab0760b50c6abcce7cd0d97bd9e491de3448f33f99f157a30553aec263b91f6b7f197fcee390dd3399e507"
   ""
   "49c0fb77fc4aa40852aeca6f750f27cc2286df308296318de943a1f005b2ff55691664c112798dd831b3ea80953a96f63e52ff535d0954adc163c7cc7ace1b71dd277fa0"
   "49c0fb96025a5fe111be0b65c31927c92d858b2f82db3f8df34d53f446b4fc10b61171b91126ce2631de323ce4428fe54b52fb56ac0054ab156d81"
   "49cb0298ad59b4ff58af167075f87cd03286d0363dc43e9ce63ca2fb50b1b756b8141bb5cd79c8257ad6248e954288f3445eab5dac0b0fab0268731573d12b71d52e"
   "49ed40a6fb4bab0b11b0126e752468d22281e0373de23096e84f94f34ab1c5"
   ""
   "7be74ba0064fadff11be121ca0177bd32e80d00a8cee09"
   "49cbfba0f651a4b86ab9186e75227cd22d7ed0e480e5338dadfa9c000cb1b753be166082"
   "49db4aa9ad4aae0618bec36aba136b802c77d82d80e53b97ef4d53f5535ee769bd0a6ac2cd7ac72786d12b4a"
   "49d64399ad2e93e53d6a126abace70d3d980d4278296309ba15198f8516cb739690362c6126b7f2f7ade2b3cd73d9be8f994ff5b6bb62a71"
   ""
   "72a23fa3fb0db3b85cb8127375256fd9e532b4e487eb429ca146a2024a5e0b58aec26db9107bd12b7ad9313cea418ce4f99bf90489df4298c166b41a6cd31877ce35"
   "95eb4699ad39a20056b7082875177b802c77d03190964297a13f9ff14c9f056477c244bacd75cd248a8a2c90954588f34759ff04a30561680266bfcc79c61c30cb347cd7388bf34b5d"
   "8bf74f54f65a660b11ab0f6eba0f6bd9d973d9e482e2348fe248a7ac519f0557be0362b9d926c42e76d8e385dbee9be83e52fe5dab0a50c0c163c61a2cd2d784d1273be13c99f3"
   "8eee409bee54b3c611970475b71327a9e07ed7e484e5ef8ef04c53d446b10255b50e1bc2127ed3d885d33081a1ee89f54d52d40baab653ad0763c11579c32389892f8ae632"
   "8fee5099fb5a5f015f6af65fbd1374c5e7"))

(define (process_list func list_in)
  (map (lambda (msg_line)
         (func msg_line key shift_key))
       list_in))

(define (split_hexstring hexstring)
  (define (loop out in)
    (if (> (string-length in) 0)
        (loop (append out
                      (list (string->number (substring in 0 2) 16)))
              (substring in 2))
        out))
  (loop (list ) hexstring))

(define (decode message key shift_key)
  (define (decode_loop decoded residual shift)
    (if (= (length residual) 0)
        decoded
        (decode_loop
         (append decoded
                 (list
                  (modulo (- (- (car residual) shift)
                             key)
                          256)))
         (cdr residual)
         (+ shift shift_key))))
  (list->string
   (map integer->char
        (decode_loop (list ) message 0))))

(define (print_msg_list msg_list)
  (define (loop msgs)
    (if (> (length msgs) 0)
        (begin
          (display (car msgs))
          (newline)
          (loop (cdr msgs)))
        0))
  (loop msg_list))

(print_msg_list (process_list decode (map split_hexstring message)))


Output:
Replying to Cottonbutt:
 > >>I love diapers! -WanderingToddler
 I agree, diapers are simply the best underwear.

 > Damn.  You're weird!
 Aren't we all weird? We're in this forum and worse, in this thread
 we write code to talk to each other.

 > >>This was difficult. I have not used any of the allowed languages
 > >>in a long time. I had to brush off my php.
 I decided to warm up my Scheme skills again, didn't take long, just
 some looking up in the reference here and there.

 > Codepad's a little behind the times.  I'd love to see it updated,
 > but I think its keepers have moved on to other projects.
 I'd suggest Jupyter Notebooks for a similar task, you can install
 kernels for various languages.

Replying to KitsuneFox:
 I like your turtle code, it's cute.
 You don't need semicolons in Python though.
 The HTML one is nice as well. I agree with both btw. ;)

I don't know why, I just love the recursion used in LISP languages
like Scheme, it seems so elegant. If only it wasn't for all the brackets,
but it's already an elegant language, even if the syntax isn't the most
elegant. Maybe I'll go for Haskell next time, but I'm definitely more
fluent in Scheme.


Create a new paste based on this one


Comments: