jq is a very high-level lexically scoped functional programming language in which every JavaScript Object Notation (JSON) value is a constant. jq supports backtracking and managing indefinitely long streams of JSON data. It is related to two programming languages Icon and Haskell. The language supports a namespace-based module system and has some support for closures. functions and functional expressions can be used as parameters of other functions.
The original implementation of jq was in Haskell before being quickly ported to C.