Vanessa McHale's blog (2)
  • Three Languages

    by Vanessa McHale | PL Nihilism

    One PL nihilism is "all languages are the same." This is not so—general-purpose languages have converged on procedures, but languages that differ nontrivially are used in computing.

  • Better Vim Tags With Jacinda

    by Vanessa McHale | Jacinda

    Universal ctags points the cursor to line numbers rather than the actual definition (as language servers do). Vim uses ex (:h Ex-mode) commands as destinations. We want to generate call cursor(line,col) for each identifier.

  • Theorems vs. Algorithms

    by Vanessa McHale | Computer Science

    Functional programmers vaunt the Curry-Howard(-Lambek) correspondence, as if it endorses the lambda calculus. In fact, it shows the limitations of computer science.

  • Laziness, A.k.a. Computer Science

    by Vanessa McHale | Computer Science

    An established problem in functional programming is the question of evaluation order (see Hudak, §2.2). Haskell offers seq; which allows the programmer to magically introduce dependencies in evaluation order and thence subvert lazy evaluation. Sometimes this is necessary; see the foldl foldl' example.

  • Unix As an IDE II

    by Vanessa McHale | Jacinda

    nm shows symbols defined in an executable. GHC includes library name in symbols, so we can use this to inspect libraries that make it into the compiled binary. GHC uses z-encoding so we pipe the output of nm into an ad-hoc invocation of sed, viz.