Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-

I trolled myself

Name: Anonymous 2008-10-08 9:08

by reading /prog/

Name: I read myself 2008-10-08 9:28

by trolling /prog/

Name: Anonymous 2008-10-08 9:39

by reporting threads

Name: sage 2008-10-08 14:30

by haxing my anus

Name: Anonymous 2008-10-08 15:12

by casting spells

Name: Anonymous 2008-10-09 1:01

by selling my hardback SICP

Name: Anonymous 2008-10-09 14:31

by thinking I had any god damn idea what LAMBDA functions do

Name: Anonymous 2008-10-11 11:10

wtfroflbbqlolollmao

Name: Anonymous 2009-12-04 2:04

by バンプパンツ~

Name: Anonymous 2009-12-04 10:03

>>7
I'd just like to interject for a moment. What you refer to as lambda functions are actually called blocks, or as I've taken to calling them, closures.

Name: Anonymous 2009-12-04 10:32

>>10
LAMBDA forms don't necessarily have to be closures. They're only closures if some bindings are closed over them.

Name: Anonymous 2009-12-04 10:53

They're only closures if some bindings are closed over them.
( ≖‿≖)

Name: Anonymous 2009-12-04 11:22


(defun returns-a-closure ()
  (let ((value 123))
    #'(lambda (n) (prog1 (+ n value) (incf value)))))

(defun returns-a-lambda ()
  #'(lambda ()))

(returns-a-lambda)
#<FUNCTION (LAMBDA ()) {2431EA1D}>
(funcall (returns-a-lambda))
NIL
(returns-a-closure)
#<CLOSURE (LAMBDA (N)) {244B035D}>
(funcall #<CLOSURE (LAMBDA (N)) {244B035D}> 1)
124
(funcall #<CLOSURE (LAMBDA (N)) {244B035D}> 0)
124
(funcall #<CLOSURE (LAMBDA (N)) {244B035D}> 0)
125
(funcall #<CLOSURE (LAMBDA (N)) {244B035D}> 0)
126

A look at the closure:
#<FUNCTION {244B035D}>
--------------------
FUNCTION: #<FUNCTION (LAMBDA (N)) {24341D55}>
Closed over values:
0: #<value cell 127 {244B0357}>

#<SB-KERNEL::RANDOM-CLASS {244B0357}>
--------------------
VALUE: 127

#<FUNCTION {24341D55}>
--------------------
NAME: (LAMBDA (N))
ARGLIST: (N)
SELF: #2=#<FUNCTION (LAMBDA (N)) {24341D55}>
NEXT: NIL
TYPE: (FUNCTION (T) (VALUES NUMBER &OPTIONAL))
CODE: #<code object "LAMBDA NIL" {24341C6F}>


A look at the lambda:
#<FUNCTION {2431EA1D}>
--------------------
NAME: (LAMBDA ())
ARGLIST: NIL
SELF: #0=#<FUNCTION (LAMBDA ()) {2431EA1D}>
NEXT: NIL
TYPE: (FUNCTION NIL (VALUES NULL &OPTIONAL))
CODE: #<code object "LAMBDA NIL" {2431E9C7}>

A lambda is just an anonymous function without state of its own. Closing some variables over them makes it a closure.

Name: Anonymous 2009-12-04 13:17

Guess which Lisp they're both #<PROCEDURE>s in.

Name: Anonymous 2009-12-04 13:32

>>14
PLT Scheme?

Name: Anonymous 2009-12-04 13:42

>>14
lelisp

Name: Anonymous 2010-11-28 11:17

Name: Selector !!5qqtHyHDQYTvpsH 2011-04-07 11:22

i

Name: Selector !!L9CH/x9m3u7FjTQ 2011-04-07 11:23

ok

Name: Selector !!Gc99HdlSSAHvOUf 2011-04-07 11:23

test again

Name: Anonymous 2013-01-19 23:12

/prog/ will be spammed continuously until further notice. we apologize for any inconvenience this may cause.

Don't change these.
Name: Email:
Entire Thread Thread List