Bubble Sort 2

Total Page:16

File Type:pdf, Size:1020Kb

Bubble Sort 2 Compare LISP with Object-Oriented Programming Languages \ PENGFEI WANG Department of Computer Science, Furman University, Greenville, SC Introduction Advantages of LISP Disadvantages of LISP • LISP is a family of functional programming languages 1. Variables are Immutable 1. Hard to learn specified in 1958. It is the second-oldest high-level 1. Easy to test: functions CANNOT change any 2. No deadlock can occur: LISP • LISP was originally created as a mathematical notation programming language in which are still used today. It is values of symbols. Programmers don’t have to programs can be run in parallel for computer programs. LISP programmers have to learn very different from Object-Oriented Languages and worry about changing in values of the variables. If without deadlock. It actually doesn’t Lambda Calculus. error occurs, they only have to trace the wrong doesn’t have much popularity as Object-Oriented need a “lock” on variables because it • Therefore, it is nearly impossible for newbies to master return value from one function to another. This Languages do, but, besides its wide use in Artificial will never change its value (typically). LISP, but it is relatively much easier to master an OOL. feature significantly decrease the amount of • On multi-thread programs, LISP is Intelligence, it is also a good general purpose • Furthermore, due to FP and OOP’s differences, it is work on debugging. more efficient than OOP, because highly difficult for programmers to transfer from OOP programming language as well. • How does LISP realize the same function as it can be run in parallel. Even if the languages (e.g. JAVA) to FP languages (e.g. LISP). • This paper is going to discuss the differences between OOP, when values are “expected” to be program is single-thread, the 2. Small Libraries LISP and OOP Languages and focus mainly on LISP. modified in OOP? You don’t have to change compiler can make the program • Because of the hardness of learning and transferring from • “LISP” stands for LISt Processor. any values or create variables in FP (typically). run in parallel on CPU. • Higher-order functions: functions that take • (someFunction1 x) OOP to FP, the programmer community is very small. functions as inputs or returns (outputs). • (someFunction2 y) • Popularity: JAVA vs LISP Attention: Abbreviations • Example 1: function as a input • (someFunction3 x y) • Google Search: See Figure 3 • (/ 1 (+ 2 3)) ; addition is the input function • These functions can be run in • Amazon Books: 27486 (JAVA) vs 1286 (LISP) In this article, FP and OOP are abbreviations of • Example 2: function as a output parallel because the first two • Libraries: 4024 (JAVA7) vs 978 (LISP) Functional Programming and Object-Oriented • (defun test (a) #’ (lambda (b) (+ b a))) functions cannot change the value • This is essential, because productivity matters in • ;; “test” returns an anonymous function Programming respectively. of x and y (typically). An OOP companies. Programmers have to write functions by (lambda), which does addition (+ b a) compiler, however, will worry themselves, which are already existed in JAVA API. • Actually, you can assign a value to a variable about whether x and y’s values are times Search and change the value of the variable. However, Figure 3: Popularity. changed in the previous functions Source: Google Trend LISP: “Hello, world!” these functions are highly discouraged, which and therefore someFunction3 cause unexpected errors. These functions are should be run at last. This is also a called destructive functions. A destructive example of why destructive function normally has a safe version functions are not recommended. (delete→remove). The safe version returns a Destructive functions might new data structure instead of changing it. change the values and cause unexpected errors. Case Study: Bubble Sort 2. Closure • Based on high-order functions, LISP can actually do what OOP languages can hardly • do: closure. Closure is needed when a function tries to access a captured variable from Data Set: 1000 Numbers List; Run 100 times outside. • Environment: Windows 10; CPU @ 2.90GHz (8 CPUs) • (defun addition (n) #'(lambda (x) (+ x n))) ; Example of closure in LISP • Compiler: JAVA 1.8.0; Steel Bank Common LISP • This function takes a input n and returns a function which adds its input, x, to n. • In order to save space, JAVA source code do not show up • When a function (i.e. lambda (x)) refers to a variable outside of it (i.e. n), this here. The algorithm comes from WikiBooks. function is called closure. The function need to be defined in the same environment with its free variable (i.e. n). 1. Function is the basic component of Functional • Actually some OOP languages start to implement closure based on the idea from Programming languages. Function can be a input of a functional languages, but LISP’s closure is far more concise than those (e.g. C++11). function or a output of a function. Therefore, recursion is 3. Extendable Language: Macro very common in LISP. • LISP can be extended by itself, using Macro, which changes the behavior of a compiler 2. Common structure of the language: List. Even functions during compiling. By macro, you can simulate any grammar you like, for example the (the basic component) are expressed by lists! In this whole JAVA. Theoretically, with macro, LISP is equivalent to Lambda Calculus. Common LISP Java program, “(format <destination> <control-string>)” is a • (defun simple-reader-extension (input1 input2) (…) (do something) ) ; Example Lines 6 14 function expressed by the list. The first one (“format”) in • (set-macro-character #\[ ‘simple-reader-extension) ; Example Characters 142 282 the list is the name of the function, and the following • The program is going to execute simple-reader-extension whenever it sees a “[“. The Run-Time 208ms 16ms elements (“t” and “’Hello, world!”) are inputs. substitution (macro expansion) is done during compilation. Note: Comments are not counted. 3. Interactive Testing: classical LISP compilers are 4. Fast & Concise • Analysis: We can see that Common LISP is so concise but • interactive. After you finish one line of code, the <ANSI Common Lisp> claims that LISP is “a language for writing fast programs and a its speed is not ideal, comparing to the experiment in language for writing programs fast”. compiler (and interpreter) will execute that line of code Figure 2 (< Lisp as an Alternative to Java). Why? This is a • Yes, LISP is concise. Actually, it is one of the most concise language being widely and then you can write the second line. Actually, you can used up till now. Also, its run-time is proved to be faster than others, even good example of why optimization is necessary. test every function independently in one program in comparing to C/C++. However, in order to make LISP fast, the program and the 1. Accessing an array in JAVA is O(1), but accessing a list in some IDE. The execution step is called evaluation in FP. compiler must obey to strict optimization and FP rules. LISP is O(n). Figure 2: LISP is fast 2. This Common LISP program uses a destructive function Actually, Common Lisp, as one of the most popular Figure 1: LISP is concise. Source: RedMonk (Note: LISP is a FAMILY of languages) called “rotatef”. Using imperative style in LISP (e.g. dialect of LISP, is not purely functional. Although rotatef), instead of FP style, will make it super slow. programmers are recommended to write in • How to optimize? functional way, the language itself is multi- 1. Optimize the Algorithm for FP languages. paradigm, which also allows object-oriented 2. Choose a better dialect of LISP with better optimization. programming (which is often procedural as well). For example, newLISP can access a list by O(1)..
Recommended publications
  • IDOL Connector Framework Server 12.0 Administration Guide
    Connector Framework Server Software Version 12.0 Administration Guide Document Release Date: June 2018 Software Release Date: June 2018 Administration Guide Legal notices Copyright notice © Copyright 2018 Micro Focus or one of its affiliates. The only warranties for products and services of Micro Focus and its affiliates and licensors (“Micro Focus”) are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. Micro Focus shall not be liable for technical or editorial errors or omissions contained herein. The information contained herein is subject to change without notice. Trademark notices Adobe™ is a trademark of Adobe Systems Incorporated. Microsoft® and Windows® are U.S. registered trademarks of Microsoft Corporation. UNIX® is a registered trademark of The Open Group. Documentation updates The title page of this document contains the following identifying information: l Software Version number, which indicates the software version. l Document Release Date, which changes each time the document is updated. l Software Release Date, which indicates the release date of this version of the software. To verify you are using the most recent edition of a document, go to https://softwaresupport.softwaregrp.com/group/softwaresupport/search-result?doctype=online help. You will also receive new or updated editions of documentation if you subscribe to the appropriate product support service. Contact your Micro Focus sales representative for details. To check for new versions of software, go to https://www.hpe.com/software/entitlements. To check for recent software patches, go to https://softwaresupport.softwaregrp.com/patches. The sites listed in this section require you to sign in with a Software Passport.
    [Show full text]
  • Comparative Programming Languages CM20253
    We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily
    [Show full text]
  • Towards Left Duff S Mdbg Holt Winters Gai Incl Tax Drupal Fapi Icici
    jimportneoneo_clienterrorentitynotfoundrelatedtonoeneo_j_sdn neo_j_traversalcyperneo_jclientpy_neo_neo_jneo_jphpgraphesrelsjshelltraverserwritebatchtransactioneventhandlerbatchinsertereverymangraphenedbgraphdatabaseserviceneo_j_communityjconfigurationjserverstartnodenotintransactionexceptionrest_graphdbneographytransactionfailureexceptionrelationshipentityneo_j_ogmsdnwrappingneoserverbootstrappergraphrepositoryneo_j_graphdbnodeentityembeddedgraphdatabaseneo_jtemplate neo_j_spatialcypher_neo_jneo_j_cyphercypher_querynoe_jcypherneo_jrestclientpy_neoallshortestpathscypher_querieslinkuriousneoclipseexecutionresultbatch_importerwebadmingraphdatabasetimetreegraphawarerelatedtoviacypherqueryrecorelationshiptypespringrestgraphdatabaseflockdbneomodelneo_j_rbshortpathpersistable withindistancegraphdbneo_jneo_j_webadminmiddle_ground_betweenanormcypher materialised handaling hinted finds_nothingbulbsbulbflowrexprorexster cayleygremlintitandborient_dbaurelius tinkerpoptitan_cassandratitan_graph_dbtitan_graphorientdbtitan rexter enough_ram arangotinkerpop_gremlinpyorientlinkset arangodb_graphfoxxodocumentarangodborientjssails_orientdborientgraphexectedbaasbox spark_javarddrddsunpersist asigned aql fetchplanoriento bsonobjectpyspark_rddrddmatrixfactorizationmodelresultiterablemlibpushdownlineage transforamtionspark_rddpairrddreducebykeymappartitionstakeorderedrowmatrixpair_rddblockmanagerlinearregressionwithsgddstreamsencouter fieldtypes spark_dataframejavarddgroupbykeyorg_apache_spark_rddlabeledpointdatabricksaggregatebykeyjavasparkcontextsaveastextfilejavapairdstreamcombinebykeysparkcontext_textfilejavadstreammappartitionswithindexupdatestatebykeyreducebykeyandwindowrepartitioning
    [Show full text]
  • Comparing LISP and Object-Oriented Programming Languages
    Wang 1 Pengfei Wang Professor Christopher A. Healy Computer Science 475 11 April 2016 Compare LISP with Object-Oriented Programming Languages Introduction LISP, which stands for List Processor, is a family of functional programming languages, invented by John McCarthy in MIT based on Lambda Calculus in 1958. It is the second-oldest high-level programming language and it was originally designed for Artificial Intelligence, but it is a good general-purpose language as well. This paper is going to discuss the differences between LISP and Object-Oriented Languages, focusing mainly on LISP. This paper is going to firstly introduce functional programming language and LISP. Then, advantages and disadvantages of LISP comparing to object-oriented languages will be discussed, and finally a specific case study will be done. Functional Programming Languages and List Processor Typically, programming languages are divided into two general types, imperative languages and declarative languages. The computer program written in imperative languages consists of statements, instructions, which indicate how (and in what order) a computation should be done. Imperative languages include all of the object-oriented languages. On the other hand, declarative languages define functions, formulas or relationships. Declarative languages do not specify how the functions are performed step-by-step in program. Functional Wang 2 programming language is one type of the declarative languages. ;; Example: Written in Common LISP (format t “Result: ~A.~%” (* 2 (+ 2 3))) ; functions /* Example: Written in C*/ int a = 2 + 3; /*statement*/ int b = a * 2; /*statement*/ printf("Result: %d.\n", b); /*statement*/ Function languages employ a computational model based on the recursive definition of functions.
    [Show full text]
  • Introduction to Newlisp
    Introduction to newLISP en.wikibooks.org December 29, 2013 On the 28th of April 2012 the contents of the English as well as German Wikibooks and Wikipedia projects were licensed under Creative Commons Attribution-ShareAlike 3.0 Unported license. A URI to this license is given in the list of figures on page 199. If this document is a derived work from the contents of one of these projects and the content was still licensed by the project under this license at the time of derivation this document has to be licensed under the same, a similar or a compatible license, as stated in section 4b of the license. The list of contributors is included in chapter Contributors on page 197. The licenses GPL, LGPL and GFDL are included in chapter Licenses on page 203, since this book and/or parts of it may or may not be licensed under one or more of these licenses, and thus require inclusion of these licenses. The licenses of the figures are given in the list of figures on page 199. This PDF was generated by the LATEX typesetting software. The LATEX source code is included as an attachment (source.7z.txt) in this PDF file. To extract the source from the PDF file, you can use the pdfdetach tool including in the poppler suite, or the http://www. pdflabs.com/tools/pdftk-the-pdf-toolkit/ utility. Some PDF viewers may also let you save the attachment to a file. After extracting it from the PDF file you have to rename it to source.7z.
    [Show full text]
  • GAS144 - a GA144 Simulator-Project in Newlisp
    GAS144 - A GA144 Simulator-Project in newLISP Introduction: This is the first release of my Green-Arrays GA144 chip simulator in newLISP. A proof of concept, it is possible to simulate one node with it, see also www.ForthSeen. de for more. The development is in progress and the first step towards a complete IDE for the GA144. Contact: I am happy about every kind of feedback: mailto:[email protected] Quick Start: 1. Install newLISP. You can download it here: http://www.newlisp.org 2. I assume you have already the „Java run time environment“ from : http://www.java.com 3. The GAS144a source is here: http://www.ForthSeen.de/stuff/GAS144a.zip or you can copy it from the following appendix 4. For Windows and for simplicity copy the 7 small files in a new directory C:\GAS144\ , but you can use any other directories if you change the path in line 3 in file „gas-7.lsp“ 5. Start newLISP-GS and load and run gas-7.lsp Some hints for experts who can't wait: - The hex code in the example is from the Practical Example No. 9 - The program generates a csv file, you can import and analyze it with Excel or LibreOfficeCalc - gas-7.lsp the main-loop line 10: true: generate csv file false: print in newLISP-GS output window line 17: iterates max 1000 times, you can fill in any number, 10000 is ok, too line 25: you can fill in any or multiple condition ( eg: prints the first 500 iterations ) line 14: define here all variable you like to print - after the program stops with „bye..“ - you can look at all variables in the lower monitor window of the newLISP-GS - example, the data stack with TSDS or return-stack with RRS - you can execute every command like ( gand ) or ( gor ) or ( g2* ) GAS144a Alpha-Release www.ForthSeen.de / dmemos 30.Dec.2014 Page: 1 / 6 GAS144 - A GA144 Simulator-Project in newLISP Why newLISP: • I use newLISP when I want to enjoy programming • Free and open source - you can download it from http://www.newlisp.org • Very powerful, you'll find probably everything you'll need, look into the manual.
    [Show full text]
  • Free and Open Source Software
    Free and open source software Copyleft ·Events and Awards ·Free software ·Free Software Definition ·Gratis versus General Libre ·List of free and open source software packages ·Open-source software Operating system AROS ·BSD ·Darwin ·FreeDOS ·GNU ·Haiku ·Inferno ·Linux ·Mach ·MINIX ·OpenSolaris ·Sym families bian ·Plan 9 ·ReactOS Eclipse ·Free Development Pascal ·GCC ·Java ·LLVM ·Lua ·NetBeans ·Open64 ·Perl ·PHP ·Python ·ROSE ·Ruby ·Tcl History GNU ·Haiku ·Linux ·Mozilla (Application Suite ·Firefox ·Thunderbird ) Apache Software Foundation ·Blender Foundation ·Eclipse Foundation ·freedesktop.org ·Free Software Foundation (Europe ·India ·Latin America ) ·FSMI ·GNOME Foundation ·GNU Project ·Google Code ·KDE e.V. ·Linux Organizations Foundation ·Mozilla Foundation ·Open Source Geospatial Foundation ·Open Source Initiative ·SourceForge ·Symbian Foundation ·Xiph.Org Foundation ·XMPP Standards Foundation ·X.Org Foundation Apache ·Artistic ·BSD ·GNU GPL ·GNU LGPL ·ISC ·MIT ·MPL ·Ms-PL/RL ·zlib ·FSF approved Licences licenses License standards Open Source Definition ·The Free Software Definition ·Debian Free Software Guidelines Binary blob ·Digital rights management ·Graphics hardware compatibility ·License proliferation ·Mozilla software rebranding ·Proprietary software ·SCO-Linux Challenges controversies ·Security ·Software patents ·Hardware restrictions ·Trusted Computing ·Viral license Alternative terms ·Community ·Linux distribution ·Forking ·Movement ·Microsoft Open Other topics Specification Promise ·Revolution OS ·Comparison with closed
    [Show full text]
  • Apache-Ivy Wordgrinder Nethogs Qtfm Fcgi Enblend-Enfuse
    eric Ted fsvs kegs ht tome wmii ttcp ess stgit nut heyu lshw 0th tiger ecl r+e vcp glfw trf sage p6f aris gq dstat vice glpk kvirc scite lyx yagf cim fdm atop slock fann G8$ fmit tkcvs pev bip vym fbida fyre yate yturl ogre owfs aide sdcv ncdu srm ack .eex ddd exim .wm ibam siege eagle xlt xclip gts .pilot atool xskat faust qucs gcal nrpe gavl tintin ruff wdfs spin wink vde+ ldns xpad qxkb kile ent gocr uae rssh gpac p0v qpdf pudb mew cc e afuse igal+ naim lurc xsel fcgi qtfm sphinx vmpk libsmi aterm lxsplit cgit librcd fuseiso squi gnugo spotify verilog kasumi pattern liboop latrace quassel gaupol firehol hydra emoc fi mo brlcad bashdb nginx d en+ xvnkb snappy gemrb bigloo sqlite+ shorten tcludp stardict rss-glx astyle yespl hatari loopy amrwb wally id3tool 3proxy d.ango cvsps cbmfs ledger beaver bsddb3 pptpd comgt x.obs abook gauche lxinput povray peg-e icecat toilet curtain gtypist hping3 clam wmdl splint fribid rope ssmtp grisbi crystal logpp ggobi ccrypt snes>x snack culmus libtirpc loemu herrie iripdb dosbox 8yro0 unhide tclvfs dtach varnish knock tracker kforth gbdfed tvtime netatop 8y,wt blake+ qmmp cgoban nexui kdesvn xrestop ifstatus xforms gtklife gmrun pwgen httrack prelink trrnt ip qlipper audiere ssdeep biew waon catdoc icecast uif+iso mirage epdfview tools meld subtle parcellite fusesmb gp+fasta alsa-tools pekwm viewnior mailman memuse hylafax= pydblite sloccount cdwrite uemacs hddtemp wxGT) adom .ulius qrencode usbmon openscap irssi!otr rss-guard psftools anacron mongodb nero-aac gem+tg gambas3 rsnapshot file-roller schedtool
    [Show full text]
  • Citation File Format (CFF)
    Citation File Format (CFF) Stephan Druskat ([email protected]) 06 October 2017 Abstract The Citation File Format (CFF) is a human- and machine-readable format for CITATION files. These files provide citation metadata for (research and scientific) software. The format aims to support all use cases for software citation described in [1]. CFF is serialized in YAML 1.2, and is therefore Unicode-based and cross- language (in terms of both natural language scripts and programming languages). This specification, together with the Unicode standard for characters, aims to provide all the information necessary to understand CFF, and to use (i.e., write) and re-use (i.e., read, validate, convert from) it. These specifications are maintained openly at https://github.com/sdruskat/citation-file-format. Contents Introduction 2 Status of this document .............................................. 2 Rationale ...................................................... 2 Goals ........................................................ 3 Concepts ...................................................... 3 Format 3 File structure .................................................... 3 Reference structure .............................................. 4 Notable reference keys ............................................ 4 Formatting ..................................................... 5 Reference keys ................................................... 5 Exemplary uses ................................................ 8 Reference types ..................................................
    [Show full text]
  • 600.103 FUNDAMENTALS of PRACTICAL COMPUTING Ken Church
    600.103 FUNDAMENTALS OF PRACTICAL COMPUTING Ken Church • Intended audience: – Students considering a major in • science, engineering or medicine • Small Class • Diversity: Geeks Mainstream – like Calculus &“typing” – College High School Elementary School – Fun (not too much work) Sell the field • Practical: – Please bring laptops to class if you can • Familiarize students with lots of stuff (breadth) • Not just a single programming language (not depth) • Fundamentals: – Lots more to Computer Science than hacking Teamwork, Web-work, etc. • Encourage teamwork, Google, Wikipedia, etc. • Homework: – Submit by email to [email protected] – Due Tuesday morning at sunrise • So I have time to adjust my Tuesday lectures (if necessary) – Target: 2 hours per hour of class • 1 hour installing software, plus • 1 hour of exercises (as opposed to problem sets) – Homework comes with hints (as opposed to recipes) • Feel free to ask for more hints ([email protected]) – Example: Use Google to figure out how to install • R (a stat package) • LISP (http://www.newlisp.org/) • cygwin (Unix for Windows) Cheating • Please don’t, but if you do, you are only cheating yourself • I want to encourage teamwork & web-work – Because they are great ways to learn – “Although you may work in small groups, each student must submit his/her own program and the code may not be a copy of others’ code. You may share ideas and help – but you must write your own code and your assignment MUST be SUBSTANTIALLY different from all others.” – Ok to submit a team effort
    [Show full text]
  • Conceptive C Harry Mcgeough
    Conceptive C Harry McGeough Version 1.0 Published by Harry McGeough at Smashwords ISBN-13: 978-1465934888 ISBN-10: 1465934888 Copyright 2011 Harry McGeough About Cover Image A billowing tower of gas and dust rises from the stellar nursery known as the Eagle Nebula. This small piece of the Eagle Nebula is 57 trillion miles long (91.7 trillion km). Credit: NASA, ESA, and The Hubble Heritage Team (STScI/AURA) Conceptive C by Harry McGeough is licensed under a Creative Commons Attribution 3.0 Unported License. Based on a work at www.wikipedia.com. Permissions beyond the scope of this license may be available at http://www.wikipedia.com. Contents Preface Natural Language Basic English Word Definition Machine Learning Compiler Changes Know Thyself AI History Deduction, Reasoning, Problem Solving Knowledge Representation Commonsense Knowledge Learning Natural Language Processing Creativity General Intelligence Evaluating progress Philosophy C Language Characteristics Early Developments K&R C ANSI C and ISO C C99 Embedded C Uses Syntax Keywords Operators "Hello, world" Example Data Types Pointers Arrays Array-pointer Interchangeability Memory Management Libraries Objective C History Popularization through NeXT Syntax Messages Interfaces and Implementations Implementation Instantiation Protocols Dynamic Typing Forwarding Categories #import Objective-C 2.0 Garbage Collection Properties Non-fragile Instance Variables Fast Enumeration Library Use Analysis of the Language Lisp Connection to Artificial Intelligence Symbolic expressions Lists Operators
    [Show full text]
  • Functional and Concurrent Programming
    Functional and Concurrent Programming Simon Thompson [email protected] CO545 Lecture 1 CO545: functional and concurrent programming CO545: functional and concurrent programming Lectures 22 lectures: introduction, functional programming, concurrent programming, going further CO545: functional and concurrent programming Lectures Classes 22 lectures: introduction, 11 two-hour functional programming, terminal sessions: concurrent programming, from this week going further CO545: functional and concurrent programming Lectures Classes 22 lectures: introduction, 11 two-hour functional programming, terminal sessions: concurrent programming, from this week going further Resources Moodle for slides, lecture recordings, programs, class and seminar resources CO545: functional and concurrent programming Lectures Classes 22 lectures: introduction, 11 two-hour functional programming, terminal sessions: concurrent programming, from this week going further Resources Lecturers Moodle for Simon Thompson slides, lecture recordings, [email protected] programs, class and Dominic Orchard seminar resources [email protected] What will I learn? What will I learn? Functional ideas Values, names, evaluation, structured types, lists, higher-order functions, recursion, PBT. What will I learn? Functional ideas Concurrent ideas Values, names, evaluation, Processes and messages, structured types, lists, process ids and spawn, higher-order functions, asynchrony and mailboxes, recursion, PBT. fail-safe and exits, … What will I learn? Functional ideas Concurrent ideas Values, names, evaluation, Processes and messages, structured types, lists, process ids and spawn, higher-order functions, asynchrony and mailboxes, recursion, PBT. fail-safe and exits, … Put it into practice Using these ideas in practice in the Erlang programming language. What will I learn? Functional ideas Concurrent ideas Values, names, evaluation, Processes and messages, structured types, lists, process ids and spawn, higher-order functions, asynchrony and mailboxes, recursion, PBT.
    [Show full text]