Daniel's Tumblog

  1. We applied concepts from modern functional programming languages, such as Scheme and ML, to shells, which typically are more concerned with UNIX features than language design. Our shell is both simple and highly programmable. By exposing many of the internals and adopting constructs from functional programming languages, we have created a shell which supports new paradigms for programmers.

    Looks very sexy.

    Tags: SHELL HIGHER-ORDER FUNCTIONAL-PROGRAMMING PROGRAMMING-LANGUAGES PROGRAMMING

  2. So basically, there are 4 dimensions:

    • Static (expressions have types) vs. dynamic (values have types)

    • Strong (values cannot be coerced to other types without a cast) vs. weak (the runtime performs a variety of coercions for convenience)

    • Latent (no type declarations) vs. manifest (type declarations)

    • Nominal (subtyping relations are declared explicitly) vs. structural (subtyping relations are inferred from the operations available on types)

    Wow. I think I get it now.

    Tags: TYPING PROGRAMMING-LANGUAGES