Hacker Newsnew | past | comments | ask | show | jobs | submit | porges's commentslogin

Here's a much better article with a similar title: https://pdfs.semanticscholar.org/c9e7/3fc7ec81458057e6f96de1...


I can recommend SF, I just started it a week ago without prior Coq experience. I'm using the VSCode integration which helps, CoqIDE is a bit clunky.


At that point aren't you just doing normal Racket pattern matching?

    (match
      (list (> x y) (stringp foo) (oddp n))
      [(list #t     _             #t      ) (whatever)]
      [(list _      #t            _       ) (other-thing)]
      [(list #t     #f            _       ) (etc)])
... or is that the joke :)


There you go. That just needs a very light syntactic sugar and it's there. The elements of the lists are constants, so you want to use a literal, and the quoting of that can all be hidden. The (list ...) around the incoming expressions can be trivially hidden also.

The one thing I suspect match probably doesn't do is feature a fall-through mechanism that I alluded to; say we want (other-thing) for its side-effect, and then still evaluate (etc) if (> x y).

(Under no circumstances do we want fall-through to be opt-out, like in the C switch statement with its forgotten break bugs, but opt-in.)

Also, this mechanism could be optimized. Since the pattern lists must only contain #t, #f and _, they can be validated to contain nothing else. Accordingly, they can be arithmetically encoded (two bits per symbol), and subject to a numeric dispatch. '(#f _ #t) is a six bit number; '(_ #f #f) is another six-bit number and so on. Arguably, match itself could do that, but it's rather specialized.


Swift

C# has the ability to opt-into default checked arithmetic. I don't know of anyone that uses it...


This looks really good, thanks! Nice support for isometry.


That's just Windows. There's no combined codebase akin to Google's.


The difference is that a French text must be finite.


("Free-format") Fortran has a max line length of 132 chars, up from ("fixed-format") 72 chars on punch cards.


FYI: `languæge` and `charæcters` don’t make much sense—‘æ’ and ‘œ’ usually changed to simple ‘e’ in modern English (Encyclopædia, mediæval), unless at the start of a word (æsthetics). There are variations, ‘œ’ seems to have been more likely to change to ‘e’ at the start of a word (œsophagus, œstrus).

Also, not every ‘ae’ was an ‘æ’—‘aerial’ is one example. I think the test is whether or not the Greek word used ‘αι’.


Are you trying to say that in modern English that œsophagus has become esophagus?

If so then you need to qualify it as American English; British English still uses oesophagus.


Yeah, I originally qualified everything and then figured most readers of the site are USian anyway ;)


That's mostly because Encyclopædia Britannica is styled that way.


Which is because the word was made by french based on the greek εγκύκλιος παιδεία

εν-κύκλος (in circle) --> εγκύκλιος παιδεία (education)

The core, generalized education one should have.

Words like paedagogic etc are also spelled like this in english (uk) because the language maintains the historic spelling


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

Search: