Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This should be compiled to a flat list of facts:

    (declare hilyan-hope)
    (declare footnote-constraint)
    
    (let [t universal-timestamp]
         (said AndrewOMartin t
               (status hoping hilyan
                              (- t (minutes 37))
                              hilyan-hope))
               (said google (undefined-past)
                     (let [knol (gensym)]
                          (not (unit knol))))
               (let [knol (gensym)]
                    (single-atomic-fact knol)))
    
    (def hilyan-hope
         (let [next-wiki-generation (gensym)
               fact-unit (gensym)
               article (gensyn)]
                 (introduces next-wiki-generation fact-unit)
                 (underlies next-wiki-generation fact-unit)
                 (footnote-constraint fact-unit)
                 (underlies fact-unit article)
                 (cause fact-unit (separate verification-wars edit-wars))))
    
    (def footnote-constraint [fact-unit]
      (let [knol (gensym)]
           (!= knol fact-unit)))
The DSL could be improved :)

Edit: So a couple of things about this exercise: yes, it took me more time (and space) than your phrase. On the other hand, I specified some extra information. Some ambiguities about your phrase needed to be explicit, so that's a win for a more formal language. Also, there's some more effort involved, so I could have the time to think more about what I say. It would be great to have an interactive tool to think and write in a more formal language, even if it is not meant to be compiled to assembler.

I have a side project that touches this tangentially (the code is made up, though!), but I can't find a lot of time for it :(

Does anybody know if something like this exist? Somethig like a wiki/REPL/mindmap sandbox for concepts.



Take a look at Attempto Controlled English.


I need an IDE for this.


Thanks!


I've been really interested in this area. Is your side project online? Even if it is just made up code, I'd love to see what you've been thinking about.

Cracking this problem could bring about an entirely new era of debate & communication.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: