Lambda the Ultimate Lisp Belongs Within the Family of Functional Languages, Which Implies an Application

Total Page:16

File Type:pdf, Size:1020Kb

Lambda the Ultimate Lisp Belongs Within the Family of Functional Languages, Which Implies an Application Coding with Lisp Coding with Lisp ‘A hip, burgeoning free software community is currently pushing Lisp, arguably the oldest case for Lisp than coder and writer Paul Graham (see Hackers and complete theory of computation within Lisp, is a Painters, LU&D 42), whose own work with Viaweb is good testament rich seam to mine, with demanding papers on programming language in common use, to the fore as a next generation coding platform. Self- both to the power of Lisp as an expressive language and Lisp’s this subject furnished by the likes of Graham, relevance within enterprise level, large-scale projects. Graham’s essays Sussman and Guy Steele, another major player in confessed Lisp newbie, Martin Howse, presents the fi rst part of an accessible guide to the and books provide a singular practical and conceptual resource, the early life of Lisp, and co-inventor of the elegantly tying real world arguments within a neat conceptual intriguing Connection Machine. culture of this fl exible language, and practical implementations under GNU/Linux’ bundle, which is well wrapped up by his strong theoretical grounding and knowledge of the language. He speaks from experience, and MORE TO LISP THAN LISTS those who paraphrase Graham without his depth of understanding Extendibility here means both extending the Lisp will always sound a bit hollow. Nevertheless, Lisp’s features and language itself in a completely transparent advantages must be outlined, and these can readily be pinned down manner, thus building a domain specifi c both to a decent level of abstraction and to highly usable abstractions language for the application, and providing the themselves, such as closures and macros. It’s worth remembering that facility for others to readily extend and customise Lambda The Ultimate Lisp belongs within the family of functional languages, which implies an application. In the fi rst instance, the fi eld of equivalence between software and data allows The art of Lisp, or coding as philosophy for coding custom languages with powerful abstractions, and in the latter case, this form of what Graham calls bottom-up programming naturally results in extensible software, with GNU Emacs as prime example here. From this perspective, Lisp isn’t about writing applications, it’s about writing languages. And, given the growing complexity of both hardware and contemporary software systems, this heavily modular, high level approach to programming and systems architecture is seriously compelling. Indeed, pioneers Sussman and Abelson preface their essential SICP volume with clear indications Coder’s dream or of how to control complexity, through user’s nightmare? establishing conventional interfaces, and Symbolics Genera establishing new languages. environment was a And, alongside those who claim that Lisp is Lisp hacker’s unusable due to an arcane syntax which paradise, allowing multiplies parentheses, some would still maintain coders to dig deep that Lisp is slow, and argue thus that the need into Lisp hardware for speed has lost out in the battle with complexity. But, given that nearly all modern good points. To hijack Python guru, Tim Peter’s, words, “Good modularity, an essential requirement for Good languages aren’t random collections of languages aren’t random collections of interchangeable features: they large-scale, complex projects. Such have a philosophy and internal coherence that’s never profi tably abstractions, and features such as automatic interchangeable features: they have a philosophy isp has come in from the cold. After years enduring the icy confused with their surface features.” Understanding Lisp is a gradual memory management, courtesy of built-in Artifi cial Intelligence (AI) winter, a period in the late eighties process, and involves some degree of immersion in the history, garbage collection, readily enable new ways and internal coherence that’s never profi tably Lwhen Lisp was dumped by many thanks to associations with philosophy and culture of Lisp as well as a gentle involvement with of programming, and this is Lisp’s great confused with their surface features over-hyped AI research, and a frosty decade in academic obscurity, coding to further elucidate core concepts such as recursion and advantage. the open source community has dusted down this unique language, macros. Yet, Lisp, with an array of dialects, libraries and Sure, the semi-interpreted nature of Lisp, with functions able to be implementations compile during interpretation, and freshened her up with lemon odour. Or rather Lemonodor.com, a implementations is far from the easiest language to get up and tried and tested at the interactive REPL (Read Eval Print Loop) prompt, following a just-in-time model, or allow high profi le Web site which actively promotes and describes Lisp use running with, in contrast to Python, which obviously presents a one or so called top level, assists in rapid development, and, Graham specifi cally for interactive compilation, speed is and can readily be considered the Slashdot of the Lisp world, has stop shop. And although a clear conceptual understanding can be proffers amusing examples of improving server software on the fl y, rarely an issue. And the speed of prototyping or performed this service for the community. readily sought in printed works such as The Little Lisper or in Abelson but Lisp’s real advantage remains in its extensibility which can readily coding is a further issue which should also enter Like a proud mother, Lisp, probably the oldest language still in use and Sussman’s seminal Structure and Interpretation of Computer be seen as stemming from a core feature of the language; the fact the equation. With Lisp, at least one has greater today, can view her children and remark on how their best features all Programs (SICP), practical advice which would further support this that Lisp programs are expressed as Lisp data structures. Indeed, John options for exploration and prototyping, and, if stem from her genes or rather memes. Flexibility and speed of knowledge is sorely lacking within the community. As we’ll see, McCarthy, a key fi gure within AI and inventor and primary needs be, optimisations can be furnished later in development are her watchwords, and key enabling features of the certain initiatives are under way to resolve these issues, but aside from implementor of Lisp, remarks in an essay on the early history of Lisp, the day. Such notions regarding Lisp as sluggish language, such as run-time typing and an interactive approach to evangelising Lisp, an effort which is close to achieving its goals, more that “One can even conjecture that Lisp owes its survival specifi cally belong within an old-fashioned view of Lisp interpretation or compilation have been adopted by newer languages work does need to be done in this direction, and this short article to the fact that its programs are lists, which everyone, including me, which focuses on syntax and on lists, arguing such as Python. Yet, Python misses the killer core or inner beauty only aims to provide an overview for the intelligent and necessarily has regarded as a disadvantage.” Hacker, Pascal Constanza, argues that LISP stands for List Processing Language, which so many celebrate in Lisp. intrigued beginner. that this core feature makes of Lisp much more than just another and which corrals this powerful language within To approach this core takes more than simply enumerating Lisp’s No-one has been more instrumental in persuasively arguing the Turing complete language, and this notion, which embeds a an academic prison. The new view of Lisp is that, 50 LinuxUser & Developer LinuxUser & Developer 51 Coding with Lisp given automatic highlighting and indentation, and Sussman’s work. Indeed, in their heyday, these pioneers were parentheses and other syntactical issues churning out meta-circular evaluators for subsets and dialects of Lisp disappear. Lisp is a far more fl exible language at an alarming rate, and their work forms an important link between than the acronym would suggest. the more exciting aspects of mathematics, philosophy and computer science. Another valuable starting point here would be the common GETTING META assertion that the proof of Godel’s incompleteness theorem, which is A further consequence of the fl attening of essential to an understanding of AI, would have been easier if he had software and data as quite distinct animals, is invented Lisp fi rst, given Lisp’s predilection for the meta-circular. And that Lisp really does live in the land of the meta, just before any unthinking C coders chime in, a C compiler written in and that’s a place where a good few C, which can be used for bootstrapping, does not belong in the realm sophisticated coders and theorists like to hang of the metacircular which further specifi es that precise semantics must out. Douglas Hofstadter, in his seminal mathematical and meta-math work, Godel, Escher, Bach: An Eternal Golden Braid, provides Another consequence of the much vaunted many mind stimulating adventures at the meta- data/software equivalence, is the unusual level, and Lisp makes for a very natural fi t here. And yet another consequence of the much defi ning quality that Lisp can be written in itself not be defi ned in the evaluator. The common parallel is with looking up a word in the dictionary, and fi nding that the defi nition uses the original word. That is how things work with a Lisp written in Lisp; eval, which quite obviously evaluates expressions, is implemented by calling eval. In contrast, a C compiler must specify detailed and precise semantics for each and every construct, and take care of boring old parsing. The REPL defi nes all that is needed to build a Lisp interpreter; read an expression, evaluate it and then print the results.
Recommended publications
  • A Zahlensysteme
    A Zahlensysteme Außer dem Dezimalsystem sind das Dual-,dasOktal- und das Hexadezimalsystem gebräuchlich. Ferner spielt das Binär codierte Dezimalsystem (BCD) bei manchen Anwendungen eine Rolle. Bei diesem sind die einzelnen Dezimalstellen für sich dual dargestellt. Die folgende Tabelle enthält die Werte von 0 bis dezimal 255. Be- quemlichkeitshalber sind auch die zugeordneten ASCII-Zeichen aufgeführt. dezimal dual oktal hex BCD ASCII 0 0 0 0 0 nul 11111soh 2102210stx 3113311etx 4 100 4 4 100 eot 5 101 5 5 101 enq 6 110 6 6 110 ack 7 111 7 7 111 bel 8 1000 10 8 1000 bs 9 1001 11 9 1001 ht 10 1010 12 a 1.0 lf 11 101 13 b 1.1 vt 12 1100 14 c 1.10 ff 13 1101 15 d 1.11 cr 14 1110 16 e 1.100 so 15 1111 17 f 1.101 si 16 10000 20 10 1.110 dle 17 10001 21 11 1.111 dc1 18 10010 22 12 1.1000 dc2 19 10011 23 13 1.1001 dc3 20 10100 24 14 10.0 dc4 21 10101 25 15 10.1 nak 22 10110 26 16 10.10 syn 430 A Zahlensysteme 23 10111 27 17 10.11 etb 24 11000 30 18 10.100 can 25 11001 31 19 10.101 em 26 11010 32 1a 10.110 sub 27 11011 33 1b 10.111 esc 28 11100 34 1c 10.1000 fs 29 11101 35 1d 10.1001 gs 30 11110 36 1e 11.0 rs 31 11111 37 1f 11.1 us 32 100000 40 20 11.10 space 33 100001 41 21 11.11 ! 34 100010 42 22 11.100 ” 35 100011 43 23 11.101 # 36 100100 44 24 11.110 $ 37 100101 45 25 11.111 % 38 100110 46 26 11.1000 & 39 100111 47 27 11.1001 ’ 40 101000 50 28 100.0 ( 41 101001 51 29 100.1 ) 42 101010 52 2a 100.10 * 43 101011 53 2b 100.11 + 44 101100 54 2c 100.100 , 45 101101 55 2d 100.101 - 46 101110 56 2e 100.110 .
    [Show full text]
  • Book XVII License and the Law Editor: Ramon F
    8 88 8 8nd 8 8888on.com 8888 Basic Photography in 180 Days Book XVII License and the Law Editor: Ramon F. aeroramon.com Contents 1 Day 1 1 1.1 Photography and the law ....................................... 1 1.1.1 United Kingdom ....................................... 2 1.1.2 United States ......................................... 6 1.1.3 Hong Kong .......................................... 8 1.1.4 Hungary ............................................ 8 1.1.5 Macau ............................................. 8 1.1.6 South Africa ......................................... 8 1.1.7 Sudan and South Sudan .................................... 9 1.1.8 India .............................................. 10 1.1.9 Iceland ............................................ 10 1.1.10 Spain ............................................. 10 1.1.11 Mexico ............................................ 10 1.1.12 See also ............................................ 10 1.1.13 Notes ............................................. 10 1.1.14 References .......................................... 10 1.1.15 External links ......................................... 12 2 Day 2 13 2.1 Observation .............................................. 13 2.1.1 Observation in science .................................... 14 2.1.2 Observational paradoxes ................................... 14 2.1.3 Biases ............................................. 15 2.1.4 Observations in philosophy .................................. 16 2.1.5 See also ...........................................
    [Show full text]
  • DIGITAL REVIEW of Asiapacific 2009–2010 Ii Digital Review of Asia Pacifi C 2009–2010
    DIGITAL REVIEW of AsiaPacific 2009–2010 ii Digital Review of Asia Pacifi c 2009–2010 To obtain a comprehensive picture of the state of play of ICT development and application in any given economy, the chapters on individual economies should ideally be read alongside the chapters on these economies in previous editions of the Digital Review of Asia Pacifi c, all of which are available for download at: http://www.digital-review.org DIGITAL REVIEW of AsiaPacific 2009–2010 EDITORS: Shahid Akhtar and Patricia Arinto CONTRIBUTING AUTHORS: EDITORIAL BOARD: Musa Abu Hassan Yu-li Liu Ilyas Ahmed Harsha Liyanage Danny Butt Salman Ansari Luis Chi Meng Loi Claude-Yves Charron Lkhagvasuren Ariunaa Naveed Malik Laurent Elder Jon Baggaley Osama Manzar Alain Modoux Tian Belawati Muhammad Aimal Suchit Nanda Axel Bruns Marjan Maria Ng Lee Hoon John Budden Fengchun Miao Rajesh Sreenivasan Danny Butt Rapin Mudiardjo Krishnamurthy Sriramesh Chriv Kosona Mahendhiran Nair Jian Yan Wang Abel Pires da Silva Wai-Kong Ng Masoud Davarinejad Nguyen Thi Thu Huong Fortunato de la Peña Siti Zobidah Omar Chamindra de Silva Thein Oo Deng Jianguo Pan Sorasak Tan Sri Dato’ Gajaraj Sushil Pandey Dhanarajan Sang-Hyun Park Paz Hernandez Diaz Adam Peake Timoteo Diaz de Rivera Phonpasit Phissamay Anita Dighe Hitendra Pillay Donny B.U. Kishor Pradhan John Yat-Chu Fung Ananya Raihan Maria Teresa Garcia Massood Saffari Goh Seow Hiong Shahida Saleem Lelia Green Partha Pratim Sarker Hameed A. Hakeem Sheldon Shaeffer Greg Hearn Tengku Mohd Azzman Jong Sung Hwang Shariffadeen Malika Ibrahim Basanta Shrestha Seungkwon Jang Abhishek Singh Arthur Jorari Rajesh Sreenivasan Kuenga Jurmi Samuelu Taufao Keisuke Kamimura Myint Myint Than Robyn Kamira Chadamas Thuvasethakul Syed S.
    [Show full text]
  • Aa Prelims 14 May 2005
    Links to the individual chapters of this publication are available at the contents page Digital ReviewDIGITAL of Asia Pacific 2005/2006 REVIEW of i AsiaPacific 2005/2006 PUBLISHER: Claude-Yves Charron CHIEF EDITOR: Chin Saik Yoon EDITORIAL BOARD: CONTRIBUTING AUTHORS: Shahid Akhtar Abdullah Zainol Abidin Claude-Yves Charron Lkhagvasuren Ariunaa Chin Saik Yoon Danny Butt Maria Ng Lee Hoon Chin Saik Yoon João Câncio Freitas John Yat Chu Fung Goh Seow Hiong Lelia Green Nalaka Gunawardene Samudra E. Haque Jong-Sung Hwang Malika Ibrahim Keisuke Kamimura Huixin Ke Khin Aye Win Norbert Klein Hugh Thaweesak Koanantakool Emmanuel C. Lallana Shelah D. Lardizabal Ching-Yi Liu Muhammad Aimal Marjan Jamshed Masood Onno W. Purbo PUBLISHERS: Sushil Pandey Adam Peake Pan Asia Networking Programme, Phonpasit Phissamay International Development Research Centre. Gopi Pradhan OTTAWA Nguyen Trung Quynh Madanmohan Rao Asia-Pacific Development Information Lorraine Carlos Salazar Programme, United Nations Development Eric Sautedé Programme. BANGKOK George Sciadas Masoud Shafiee Orbicom Network of UNESCO Chairs Basanta Shrestha in Communications. MONTRÉAL Motohiro Tsuchiya Kalaya Udomvitid PUBLISHED IN ASSOCIATION WITH: Yong Chee Tuan Esther Batiri Williams Southbound. PENANG ii Digital Review of Asia Pacific 2005/2006 The views expressed in this publication are those of the authors and editor and do not necessarily reflect the views of the publishers. The designations employed and the presentation of material throughout this publication do not imply the expression of any opinion whatsoever on the part of the publishers concerning the legal status of any country, territory, city or area or of its authorities, or concerning the delimitation of its frontiers or boundaries.
    [Show full text]
  • Software Libre Para El Desarrollo Del Tercer Mundo
    Ingenier´ıaInform´atica PROYECTO FIN DE CARRERA Software Libre Para El Desarrollo Del Tercer Mundo - Memoria - Autor: D. Jes´usJavier Estepa Nieto Granada, Julio de 2007 Director: D. Francisco Javier Melero Rus Este documento puede utilizarse bajo los t´erminosde la Licencia Creative Commons Attribution-NonCommercial-ShareAlike 3.0, de la que se puede leer una copia en (http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode) Primero te ignoran. Luego se r´ıende ti. Despu´este atacan. Entonces ganas. Mahatma Gandhi Agradecimientos Quisiera aprovechar la oportunidad de dar las gracias a todas las personas que han colabo- rado en la realizaci´onde este proyecto: Al Profesor D. Francisco Javier Melero Rus, por la dedicaci´one inter´esmostrados du- rante la realizaci´on de este proyecto. A todas las personas y organismos que han atendido mis consultas. A los miembros de mi familia, por su apoyo y comprensi´on, sobre todo en los momentos dif´ıcilesde estos a˜nos estudiando en C´ordoba y Granada. A mis compa˜neros de clase, piso y amigos, Mario, Pablo, Javi, Alejandra, Carolina, Ricardo, Pedrera, Jaime, Armando, Marietta, Javi, Jos´eLu´ıs,Manuel y todos los que durante estos 3 a˜nosen Granada me han prestado su tiempo, apuntes, ganas y ayuda. Tampoco puedo olvidarme de mis amigos de Ba˜nos de la Encina. De forma muy especial a Alicia, por estos 5 a˜nos juntos, primero en la distancia y ahora en la cercan´ıa. Por confiar en m´ı,por sus consejos, por hacerme ver la vida de otra forma, porque es especial, porque es parte de m´ı.
    [Show full text]
  • Evaluating User Experience for Operating System Development
    EVALUATING USER EXPERIENCE FOR OPERATING SYSTEM DEVELOPMENT Raihan Hasnain Rahman Student ID: 03201013 Department of Computer Science and Engineering April 2008 BRAC University, Dhaka, Bangladesh Declaration We, hereby, declare that the work presented in this thesis is the outcome of the research performed by me (Raihan Hasnain Rahman) under the supervision of Dr. Mumit Khan, Associate Professor, Department of Computer Science and Engineering, BRAC University, Dhaka. I also declare that no part of this thesis and thereof has been or is being submitted elsewhere for the award of any degree or diploma. Signature Signature _____________________ ______________________________ (Dr. Mumit Khan) (Raihan Hasnain Rahman) ii Acknowledgements At first I would like to thank my thesis supervisor Dr. Mumit Khan for his help and cooperation. His useful hints, comments and recommendations helped me in every steps of this research. Without his continuous guidance I would not be able to complete this thesis. Thanks to Arefin Jamal for downloading around 10 Linux distribution iso’s for me. His helpful comments and discussions about many aspects of UX helped me a lot. Thanks to Farzana Rahman for giving me her notebook computer on which I tested different Linux distributions and compiled this report. Thanks to the contributor users of Wikipedia. Disclaimer This research is done for study purposes only. I have no affiliation with any company or any group. By this research document I do not advertise or preach to the users to use or leave any product of any company. Some of the articles, interviews and comments are used here in actual form (without any form of spell or grammar editing).
    [Show full text]
  • Introducing Linux - a Beginner’S Approach Anurag Bhandari
    Introducing Linux - A Beginner’s Approach Anurag Bhandari 05103007 CSE, 7th Semester Index • Acknowledgment • Operating System • What is Linux? • History of Linux • Linux user interface • Programming in Linux • Linux on Desktop • Running Windows Software on Linux • Gaming on Linux • Linux on Servers and Supercomputers • Linux on Embedded Systems • Linux on other devices • Adoption of Linux • Adoption by Governments • Linux in Education • Why should you use Linux? ◦ Forget about viruses ◦ Is your system unstable ◦ Linux is free ◦ Linux comes with software built-in ◦ Updating in a single click ◦ Linux does not get slow ◦ Linux does not need defragmentation ◦ Linux can run on old hardware ◦ Add new software in a few clicks ◦ Linux is extremely customizable • Conclusion • References Acknowledgement First of all, I would like to express my gratitude towards my teachers who gave me the chance to choose my favorite topic for presenting in the class Seminar. To mention a few, I am highly thankful to DK Gupta Sir, Geeta Sikka Mam, Sukhvinder Singh Sir, Raman Sir, for guiding us throughout the process. Operating System An operating system (commonly abbreviated OS and O/S) is the software component of a computer system that is responsible for the management and coordination of activities and the sharing of the resources of the computer. The operating system acts as a host for application programs that are run on the machine. As a host, one of the purposes of an operating system is to handle the details of the operation of the hardware. This relieves application programs from having to manage these details and makes it easier to write applications.
    [Show full text]
  • Digital Review of Asia Pacific
    DIGITAL REVIEW of AsiaPacific 2009–2010 ii Digital Review of Asia Pacifi c 2009–2010 To obtain a comprehensive picture of the state of play of ICT development and application in any given economy, the chapters on individual economies should ideally be read alongside the chapters on these economies in previous editions of the Digital Review of Asia Pacifi c, all of which are available for download at: http://www.digital-review.org DIGITAL REVIEW of AsiaPacific 2009–2010 EDITORS: Shahid Akhtar and Patricia Arinto CONTRIBUTING AUTHORS: EDITORIAL BOARD: Musa Abu Hassan Yu-li Liu Ilyas Ahmed Harsha Liyanage Danny Butt Salman Ansari Luis Chi Meng Loi Claude-Yves Charron Lkhagvasuren Ariunaa Naveed Malik Laurent Elder Jon Baggaley Osama Manzar Alain Modoux Tian Belawati Muhammad Aimal Suchit Nanda Axel Bruns Marjan Maria Ng Lee Hoon John Budden Fengchun Miao Rajesh Sreenivasan Danny Butt Rapin Mudiardjo Krishnamurthy Sriramesh Chriv Kosona Mahendhiran Nair Jian Yan Wang Abel Pires da Silva Wai-Kong Ng Masoud Davarinejad Nguyen Thi Thu Huong Fortunato de la Peña Siti Zobidah Omar Chamindra de Silva Thein Oo Deng Jianguo Pan Sorasak Tan Sri Dato’ Gajaraj Sushil Pandey Dhanarajan Sang-Hyun Park Paz Hernandez Diaz Adam Peake Timoteo Diaz de Rivera Phonpasit Phissamay Anita Dighe Hitendra Pillay Donny B.U. Kishor Pradhan John Yat-Chu Fung Ananya Raihan Maria Teresa Garcia Massood Saffari Goh Seow Hiong Shahida Saleem Lelia Green Partha Pratim Sarker Hameed A. Hakeem Sheldon Shaeffer Greg Hearn Tengku Mohd Azzman Jong Sung Hwang Shariffadeen Malika Ibrahim Basanta Shrestha Seungkwon Jang Abhishek Singh Arthur Jorari Rajesh Sreenivasan Kuenga Jurmi Samuelu Taufao Keisuke Kamimura Myint Myint Than Robyn Kamira Chadamas Thuvasethakul Syed S.
    [Show full text]