32:
336:
found in modern functional languages. ISWIM variables did not have explicit type declarations and it seems likely (although not explicitly stated in the 1966 paper) that Landin intended the language to be dynamically typed, like LISP and unlike
331:
A notable semantic feature was the ability to define new data types, as a (possibly recursive) sum of products. This was done using a somewhat verbose natural language style description, but apart from notation amounts exactly to the
394:
Another line of descent from ISWIM is to strip out the imperative features (assignment and the J operator) leaving a purely functional language. It then becomes possible to switch to
675:
563:
The ISWIM paper also has the first appearance of algebraic type definitions used to define structures. This is done in words, but the sum-of-products idea is clearly there
655:
665:
597:(September 1969). GEDANKEN: a simple typeless language which permits functional data structures and co-routines (Report). Argonne National Laboratory.
660:
550:
512:
53:
580:
455:
75:
320:
clauses (auxiliary definitions including equations among variables), conditional expressions and function definitions. Along with
517:
415:
411:
222:
165:
670:
419:
238:
181:
177:
20:
407:
399:
218:
161:
149:
46:
40:
537:, Lecture Notes in Computer Science, vol. 7829, Berlin, Heidelberg: Springer Berlin Heidelberg, pp. 1–20,
355:
321:
403:
376:
226:
213:
Although not implemented, it has proved very influential in the development of programming languages, especially
206:
169:
57:
367:, captured most of Landin's concepts, including powerful transfer-of-control operations. Both of these were
250:
214:
103:
99:
269:
234:
197:
94:
489:
333:
631:
467:
546:
304:
621:
594:
538:
459:
360:
284:
273:
395:
261:
to which are added mutable variables and assignment and a powerful control mechanism: the
258:
254:
204:
and first described in his article "The Next 700 Programming
Languages", published in the
110:
485:
388:
342:
649:
440:
300:
635:
575:
Evans, Art (1968). "PAL: a language designed for teaching programming linguistics".
516: prior to 1 November 2008 and incorporated under the "relicensing" terms of the
471:
372:
287:. A goal of ISWIM was to look more like mathematical notation, so Landin abandoned
280:
201:
115:
532:
19:"I See What You Mean" redirects here. For the sculpture in Denver, Colorado, see
542:
368:
384:
262:
626:
609:
463:
145:
353:
No direct implementation of ISWIM was attempted but Art Evan's language
230:
173:
341:; but it is also possible that he intended to develop some form of
338:
288:
316:
clauses. An ISWIM program is a single expression qualified by
279:
The operational semantics of ISWIM are defined using Landin's
25:
507:
324:, ISWIM was one of the first programming languages to use
310:
A notationally distinctive feature of ISWIM is its use of
610:"A definition of an ISWIM-like language via Scheme"
490:
Call-by-Name, Call-by Value and the Lambda
Calculus
155:
139:
121:
109:
93:
253:language with a functional core, consisting of a
608:Ivanović, Mirjana; Budimac, Zoran (April 1993).
534:Some History of Functional Programming Languages
506:This article is based on material taken from
8:
268:. Being based on lambda calculus, ISWIM has
88:
676:History of computing in the United Kingdom
87:
625:
398:. This path led to programming languages
76:Learn how and when to remove this message
39:This article includes a list of general
431:
200:(or a family of languages) devised by
656:Programming languages created in 1966
291:'s semicolons between statements and
7:
513:Free On-line Dictionary of Computing
441:"The Next 700 Programming Languages"
581:Association for Computing Machinery
577:Proceedings ACM National Conference
456:Association for Computing Machinery
666:Experimental programming languages
299:blocks and replaced them with the
45:it lacks sufficient corresponding
14:
379:may be considered equivalent to I
30:
349:Implementations and derivatives
283:and use call-by-value, that is
661:Academic programming languages
1:
439:Landin, P. J. (March 1966).
21:I See What You Mean (Argent)
579:. ACM National Conference.
543:10.1007/978-3-642-40447-4_1
127:; 58 years ago
692:
233:and their successors, and
196:) is an abstract computer
18:
448:Communications of the ACM
404:Kent Recursive Calculator
207:Communications of the ACM
160:
144:
520:, version 1.3 or later.
60:more precise citations.
531:Turner, D. A. (2013),
270:higher-order functions
251:imperative programming
215:functional programming
194:If You See What I Mean
627:10.1145/152739.152743
464:10.1145/365230.365257
303:and scoping based on
671:Functional languages
334:algebraic data types
235:dataflow programming
198:programming language
16:Programming language
614:ACM SIGPLAN Notices
122:First appeared
90:
255:syntactic sugaring
217:languages such as
595:Reynolds, John C.
552:978-3-642-40446-7
382:
369:typed dynamically
187:
186:
86:
85:
78:
683:
640:
639:
629:
605:
599:
598:
591:
585:
584:
572:
566:
565:
560:
559:
528:
522:
521:
503:
497:
496:
494:
482:
476:
475:
445:
436:
380:
361:John C. Reynolds
314:
298:
294:
285:eager evaluation
274:lexically scoped
135:
133:
128:
111:Designed by
91:
81:
74:
70:
67:
61:
56:this article by
47:inline citations
34:
33:
26:
691:
690:
686:
685:
684:
682:
681:
680:
646:
645:
644:
643:
607:
606:
602:
593:
592:
588:
574:
573:
569:
557:
555:
553:
530:
529:
525:
505:
504:
500:
492:
486:Plotkin, Gordon
484:
483:
479:
443:
438:
437:
433:
428:
396:lazy evaluation
351:
312:
296:
292:
259:lambda calculus
247:
237:languages like
131:
129:
126:
82:
71:
65:
62:
52:Please help to
51:
35:
31:
24:
17:
12:
11:
5:
689:
687:
679:
678:
673:
668:
663:
658:
648:
647:
642:
641:
600:
586:
567:
551:
523:
498:
477:
430:
429:
427:
424:
389:type inference
350:
347:
343:type inference
246:
243:
185:
184:
158:
157:
153:
152:
142:
141:
137:
136:
123:
119:
118:
113:
107:
106:
97:
84:
83:
38:
36:
29:
15:
13:
10:
9:
6:
4:
3:
2:
688:
677:
674:
672:
669:
667:
664:
662:
659:
657:
654:
653:
651:
637:
633:
628:
623:
619:
615:
611:
604:
601:
596:
590:
587:
582:
578:
571:
568:
564:
554:
548:
544:
540:
536:
535:
527:
524:
519:
515:
514:
509:
502:
499:
491:
487:
481:
478:
473:
469:
465:
461:
457:
453:
449:
442:
435:
432:
425:
423:
421:
417:
413:
409:
405:
401:
397:
392:
390:
386:
378:
374:
370:
366:
362:
358:
357:
348:
346:
344:
340:
335:
329:
327:
323:
319:
315:
308:
306:
302:
301:off-side rule
290:
286:
282:
277:
275:
271:
267:
265:
264:program point
260:
256:
252:
244:
242:
240:
236:
232:
228:
224:
220:
216:
211:
209:
208:
203:
199:
195:
191:
183:
179:
175:
171:
167:
163:
159:
154:
151:
147:
143:
140:Influenced by
138:
124:
120:
117:
114:
112:
108:
105:
101:
98:
96:
92:
80:
77:
69:
66:December 2011
59:
55:
49:
48:
42:
37:
28:
27:
22:
620:(4): 29–38.
617:
613:
603:
589:
576:
570:
562:
556:, retrieved
533:
526:
511:
501:
480:
451:
447:
434:
393:
383:without the
373:Robin Milner
364:
354:
352:
330:
325:
317:
311:
309:
281:SECD machine
278:
263:
249:ISWIM is an
248:
212:
205:
202:Peter Landin
193:
189:
188:
116:Peter Landin
72:
63:
44:
458:: 157–165.
363:' language
305:indentation
276:variables.
58:introducing
650:Categories
558:2024-01-28
426:References
385:J operator
156:Influenced
104:functional
100:Imperative
41:references
495:(Report).
387:and with
328:clauses.
210:in 1966.
636:14379260
488:(1975).
472:13409665
365:Gedanken
266:operator
146:ALGOL 60
95:Paradigm
510:at the
416:Haskell
412:Miranda
406:(KRC),
231:Haskell
223:Miranda
174:Haskell
166:Miranda
130: (
54:improve
634:
549:
470:
418:, and
359:, and
245:Design
43:, but
632:S2CID
508:ISWIM
493:(PDF)
468:S2CID
454:(3).
444:(PDF)
420:Clean
339:ALGOL
326:where
318:where
313:where
293:begin
289:ALGOL
239:Lucid
190:ISWIM
182:Lucid
178:Clean
89:ISWIM
547:ISBN
518:GFDL
408:Hope
400:SASL
381:SWIM
295:...
272:and
219:SASL
162:SASL
150:Lisp
132:1966
125:1966
622:doi
539:doi
460:doi
375:'s
356:PAL
322:CPL
297:end
257:of
652::
630:.
618:28
616:.
612:.
561:,
545:,
466:.
450:.
446:.
422:.
414:,
410:,
402:,
391:.
377:ML
371:.
345:.
307:.
241:.
229:,
227:ML
225:,
221:,
180:,
176:,
172:,
170:ML
168:,
164:,
148:,
102:,
638:.
624::
583:.
541::
474:.
462::
452:9
192:(
134:)
79:)
73:(
68:)
64:(
50:.
23:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.