kjedsommelighetskode

Åååå, som jeg hater influensa!!! Nå ha jeg ligget i sofaen i fem dager og kjedet meg. Men jeg må innrømme jeg har fått til å kode litt. Ikke så mye nyttig nødvendigvis, men jeg har nå fått løst noen Euler-problemer, og knotet litt med ett og annet hobby-prosjekt.

Noe av det aller minst nyttige en kan lage er hello-world-programmer. Og da tenker jeg ikke på den enkle sorten. I et orntlig hello-world-program skal det ikke være så enkelt å se hvordan det faktisk virker. Alt er lov, det eneste kriteriet er at programmets nøyaktige output er teksten “Hello, World!”.

Her er et jeg konstruerte i dag..

10             ;==-----\\
11             ;        \\\
12             ;         \\\\
13 (ns ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
14  ,  hello                                ,,,
15   ,     (:use clojure.repl)                 ,,,
16    ,        (:require clojure.string))         ,,,
17     ,           ((defn                            ,,,
18      ,              Hello-World!  [ by Tormaroe ]    ,,,
19     ,           (println                          ,,,
20    ,        (clojure.string/replace            ,,,
21   ,     (first                              ,,,
22  ,  (dir-fn 'hello))                     ,,,
23 #"-" ", "))) 00 00) ,,,,,,,,,,,,,,,,,,,,
24             ;         ////
25             ;        ///
26             ;==-----//

Ja, det er et gyldig clojure-program. Og selv om det ser tullete ut så går det faktisk an å lære noe av dette også – hvis du klarer å tyde hvordan det virker så vil jeg si du har kommet et godt stykke på vei til å bli en god clojure-utvikler.

Her er en litt annen variant..

 1 ;; a program saying hello to the world
 2 (use '[clojure.string :only (join)])
 3 (let [a (partial subs (slurp *file*))]
 4   (print (join ", " (map #(a % (+ % 5)) [20 33]))))

Klarer du å gjette deg til hva den gjør? Eller hva med den neste..?

 1 (->>
 2   (map #(nth (str %) %2)
 3        '(hash dec nil? apply symbol?
 4               " , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , "
 5               " , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , "
 6               remove-watch comporator print-ctor bit-shift-left chunk-append)
 7        (range))
 8   (apply str)
 9   print)

Litt fornøyd med den faktisk. Og i tre små programsnutter har jeg faktisk klart å vise ganske masse, grunnleggende Clojure.

Disse programmene finner du også på hello-world-tråden på norsk freakforum, sammen med en rekke andre, interessange bidrag i ulike språk.

Kategorier: LISP/Clojure.
RSS feed for kommentarene. Tilbaketråkk.

Skriv en kommentar

Tillatte tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Alf Kåre Lefdal: Distributed Podcast er også ganske interessant. De tar opp tema som fx. ...

Stian: +1 for 6er til This Developer's Life! Min definitive favoritt. Jeg trengte også...

Torbjørn: Takk for flere tips, Vegard. Deep Fried Bytes ligger på oversikten min fra 2009...

Vegar: Og glemte helt ios: Nsbrief og ideveloper live. Har du hørt på deep fried byt...

Vegar: Mye kjekt her. TDL, hanselminutes og .net rocks ligger i en klasse for seg. Suv...

Torbjørn: Helt enig, arkivet til Software Engineering Radio er en gullgruve om man vet hva...

Einar W. Høst: Jeg synes at det kuleste med se-radio er backloggen av intervjuer... det er noen...

arnab: fantastisk :)...

Olav: Glimrende blogg ! Modellen av hjernens arbeid passer ikke bare på nyskaping: ...

Torbjørn: Ja, flydesign trekkes ofte frem som et eksempel på dette fenomenet. Design av b...

Mulig relaterte linker

 Hold deg oppdatert

Søk i bloggen

Ferske innlegg

  • NodeJS vs. ASP.NET
  • Pulten min..
  • No ifs and buts
  • Community-fiskebolle på ROOTS 2012
  • Kategorier

  • .net ninja (37)
  • Bøker (18)
  • Diverse prosjekter (37)
  • DSL (10)
  • Erlang (10)
  • F# (5)
  • Hardware (1)
  • Jobb (78)
  • Julekalender (51)
  • kjempekjekt.com (23)
  • LISP/Clojure (34)
  • NDC (4)
  • NNUG / community (63)
  • O/RM & databaser (10)
  • Off topic (118)
  • OO-design/clean code (31)
  • Podcasts (15)
  • Polyglot (82)
  • Ruby (29)
  • Silverlight / RIA (3)
  • Software/verktøy (20)
  • Softwareutvikling (24)
  • Testing / TDD (30)
  • the contiki strip (13)
  • User experience (3)
  • WCF (3)
  • Webutvikling (34)
  • WPF (9)
  • WTF (13)
  • Last ned Wallpaper

    Programmeringsbloggens tøffe skrivebordsbakgrunn med snippets fra ulike språk laster du ned her!

    Abonner via epost

    Om du vil kan du få alle nye blogposter tilsendt til din epost. Abonner nå, det er kjempeenkelt!

    Meta