6,223 reputation
22333
bio website jozefg.bitbucket.org
location United States
age 18
visits member for 2 years, 5 months
seen 21 hours ago

I am a student who enjoys PLT, type theory, and functional programming. Mostly I write Haskell, sometimes Agda, Scheme, or Ruby.

I like compilers and formal verification (mostly in Coq) too.


Jul
9
comment How bad is using underscore in names?
I've also seen _ALLCAPS for some constants defined with conditional compilation and the like.
Jun
29
comment What are the benefits of learning an old programming language?
@user139022 Nowadays it's much more fashionable to borrow from ML and Lisp. Macros, fancier type systems, HOFs, immutable data.. it's been here for a while :)
Jun
29
comment What are the benefits of learning an old programming language?
@user139022 Every language provides you with a tool and a new outlook on programming. Each makes a different set of trade offs and optimizes for different tasks. If you think all PLs are similar and you can't learn anything new then you haven't learned enough PLs :)
Jun
29
answered What are the benefits of learning an old programming language?
Jun
7
comment Why isn't there a python compiler to native machine code?
Well actually, you'd be surprised what sbcl can do. The benchmarks game shows it running as fast as Java, nearly as fast as GHC, and within 1x to 10x of C. It's not slow by any standards. Yes, dynamic types inhibit compilation to some extent, but not so much as you seem to think.
Jun
7
comment Why isn't there a python compiler to native machine code?
It's worth noting that this does make the problem hard, but not impossible. sbcl compiles Common Lisp which also is dynamic, has eval, and a bunch of other things to make compiler writers sad. It's not to the level of gcc, but it's certainly faster than CPython's interpreter.
Jun
5
comment Tail-recursive implementation of take-while
@Giorgio I just got that :/ If you're still online I'm happy to discuss this in chat :)
Jun
4
comment Tail-recursive implementation of take-while
@Giorgio Indeed I'm flummoxed how to get something to that effect
Jun
4
answered Tail-recursive implementation of take-while
May
13
comment Is there any reason not to use Optional as a method argument in the case where you know the argument is something that may or may not be needed?
This is a common use for them in Haskell, which also doesn't have default arguments (currying pain).
May
13
comment Should you throw an exception if a method's input values are out of range?
@Voo That's not checked in nearly the same way though. C++ just exits hard if you throw an exception you said you wouldn't, which is usually the opposite of what you want to happen with checked failures!
Apr
30
answered What happened to VM based deployments?
Apr
17
comment Storing tokens during lexing stage
An interesting idea is to use an threadsafe queue and parallelize the parser/lexer. Regardless a queue would work just fine
Apr
8
comment What features does MIT-Scheme have that make it ideal for SICP?
@ElfSternberg Well clojure is easy, tail call optimization and first class continuations for one. Clojure /= Scheme
Apr
8
comment Are closures considered impure functional style?
You can absolutely close over mutable values in Haskell, but such a thing would be annotated with the IO monad.
Apr
8
comment What's the reason of choosing PascalCasing over camelCasing or vice versa from a programming language design POV?
@LorenPechtel Yep, that's what I meant by "unfortunate ambiguities". Experts exchange had to change their URL I believe
Apr
7
comment What's the reason of choosing PascalCasing over camelCasing or vice versa from a programming language design POV?
@MichaelShaw I'm going off the OP's usage of "no casing". It probably could be more accurately termed "unseperated and no casing"
Apr
7
answered What's the reason of choosing PascalCasing over camelCasing or vice versa from a programming language design POV?
Apr
7
revised What features does MIT-Scheme have that make it ideal for SICP?
deleted 139 characters in body
Apr
7
answered What features does MIT-Scheme have that make it ideal for SICP?