Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Talk:J operator

Page contents not supported in other languages.
Add topic
From Wikipedia, the free encyclopedia
Latest comment: 12 years ago by 79.183.183.207 in topic What does it do and why?

What does it do and why?

[edit]

Why did they invent the J operator? The article does not clearly describe what the purpose of the J operator is, or give any examples of how it would be used. What... is it? — Preceding unsigned comment added by 71.234.123.137 (talk) 04:52, 29 May 2012 (UTC)Reply

I don't know why they invented J operator. I also think that it's misleading to call it that. The original name was "program-point". The paper that describes it, describes the operator as "the thing most closest to jump", which was basically a mechanism for cases where eager evaluation would not do. (This is my speculation). As far as I can understand, the below Common Lisp code tries to roughly represent the idea:
(defun j-operator (function continuation)
  (lambda (&rest args)
    (funcall continuation (apply function args))))

(defun j-operator-test (continuation)
  (j-operator (lambda (x) (+ x x)) continuation))

;; CL-USER> (j-operator-test (lambda (x) (format t "~&result: ~d" x)))

;; #<CLOSURE (LAMBDA (&REST ARGS) :IN J-OPERATOR) {100565428B}>
;; CL-USER> (funcall * 2)
;; result: 4

79.183.183.207 (talk) 11:05, 24 January 2014 (UTC)Reply