Talk:Q (equational programming language)

From Wikipedia, the free encyclopedia
Latest comment: 18 July 2015 by John Vandenberg in topic q syntax highlighting lost
Jump to navigation Jump to search

<templatestyles src="Module:Message box/tmbox.css"/><templatestyles src="Talk header/styles.css" />

Script error: No such module "Check for unknown parameters".Script error: No such module "Check for deprecated parameters".

Template:WikiProject banner shell

Untitled

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 languageQ (programming language) – Conformance with WP naming conventions --Cybercobra 06:32, 15 November 2006 (UTC) Template:Wikipedia talk:WikiProject Programming languages/Renaming pollReply

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)Reply

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)Reply

q syntax highlighting lost

Since the switch from Geshi to Pygments for syntax highlighting (phab: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)Reply