Talk:Q (equational programming language)

The code examples are taken from the externally linked page: has their author released them under GFDL? -- The Anome 09:27, 5 Sep 2003 (UTC)

Well, I've written these code snippets and I posted them here, so now they are under the GFDL. -- Ag 10:01, 5 Sep 2003 (UTC)

Requested move
Q programming language → Q (programming language) – Conformance with WP naming conventions --Cybercobra 06:32, 15 November 2006 (UTC)

term rewriting != lambda calculus
The article states that Q is not based on lamda calculus, but term rewriting instead. Can we have some clarification of this statement? Preferably with some examples of what we can do because of this? --MarSch 15:35, 6 December 2006 (UTC)


 * to (partly) answer my own question: http://q-lang.sourceforge.net/examples/symbolic.q

/* The Q interpreter can actually perform computations with arbitrary "symbolic" expressions, and equations can be arbitrary rewriting rules. E.g., the following equations implement distributivity and associativity. Try with something like `square (A+B)'. */

(X+Y)*Z		= X*Z+Y*Z; X*(Y+Z)		= X*Y+X*Z;

X+(Y+Z)		= (X+Y)+Z; X*(Y*Z)		= (X*Y)*Z;

double X	= 2*X; square X	= X*X;

/* Another tiny example: symbolic differentiation. E.g., try something like `diff X (5*square X+double X+10)'. */

diff X X	= 1; diff X (U+V)	= diff X U + diff X V; diff X (U*V)	= U*diff X V + V*diff X U; diff X Y	= 0 otherwise;

/* A few additional simplification rules. */

X*0		= 0; 0*X		= 0;

X*1		= X; 1*X		= X;

X+0		= X; 0+X		= X;


 * But cannot you do that with lambda? That is difficult to prove :) --MarSch 15:38, 6 December 2006 (UTC)

q syntax highlighting lost
Since the switch from Geshi to Pygments for syntax highlighting (T85794), support for 'q' was unfortunately dropped, as can be seen with the plain text formatting on this page, and other such as K (programming language), ELI (programming language). If we want 'q' syntax highlight support again, it will need to be added to Pygments. However, Pygments does include support for 'apl', 'j', etc, which may be a suitable fallback, and it can be very easily added like this patch.

Also, Q (programming language from Kx Systems) uses lang=q. Is that correct? John Vandenberg (chat) 21:32, 18 July 2015 (UTC)