HN user

p2edwards

8 karma
Posts0
Comments8
View on HN
No posts found.

Agreed —

seeinglogic's article made me think of a 3rd option:

1. Sorta long functional chain where the type changes partway through 2. Use temp variables 3. (New option) Use comments

(Here's funcA from seeinglogic's article, but I added 3 comments)

    function funcC(graph) {
      return 
        // target node
        graph.nodes(`node[name = ${name}]`)
          // neighbor nodes
          .connected()
          .nodes()
          // visible names
          .not('.hidden')
          .data('name');
     }


Compare to funcB which uses temp variables:
    function funcB(graph) {
      const targetNode = graph.nodes(`node[name = ${name}]`)
      const neighborNodes = targetNode.connected().nodes();
      const visibleNames = neighborNodes.not('.hidden').data('name')

      return visibleNames;
    }
For me the commented version is easier to read and audit and it also feels safer for some reason, but I'm not how subjective that is.

I do miss 2 features from LiveScript:

1. `wxyz = [ 2 8 -5 5 ]` (commas optional for non callables)

2. `console.log \hello` (backslash strings)

Don't know how hard/compatible #1 is, but for #2 I had a tested PR that I could bring around.

(#3 was bulleted lists, but you already added that!)