Entradas

What makes Lisp Lisp?

I found this last text repetitive and boring, I think I had understood where Lisp came from and almost everything there was to know about its story in the previous readings and podcasts. The only part of the reading I found interesting was the eval definition function where they showed you how to write the Lisp interpreter in Lisp. The thing with programming using a functional language is that is a complete flip of paradigm, when the data is also the code and you need to differentiate it using quotes. One of the difference I found in this reading regarding Lisp and Clojure is that in Lisp the empty list represents false and the atom t represents true where as in Clojure we have true to represent true and false or nil to represent false. Also, I noted the differences between the primitive functions in Clojure and in Lisp, where in Lisp they are called weird and in Clojure they have the name of what they do. This last I noted since the podcast about Lisp that explained why the functio...

What is Clojure?

The podcast "Rich Hickey on Clojure" explains what made Rich Hickey consider the idea of creating a new programming language called Clojure, based on Lisp and running in the Java Virtual Machine. What I enjoyed the most of the podcast was the explanation of the immutable data structures because if you consider data to be immutable and consider a big program then you should worry for memory as everything would be kept in memory and this is not efficient. So, what makes Clojure efficient? It turns out the programming language uses Single Linked List and instead of creating an exact copy of an Array or Set but with a value change, it uses the Nodes of the Linked List just to add the new path of the changes. In other words, if A->B->C and you change B to D it create a new A to point D and D will point C, so you would have your two lists A->B->C and A'->D->C. This intelligent approach reduces redundancy and memory usage by recycling the parts of the structur...

A real dive into LISP

The podcast Dick Gabriel on Lisp mentions a lot of the workarounds from this programming language, one of the most interesting aspect of the programming language is that it is very similar to the theoretical Turing Machine. The importance of Lisp is the promise that it makes to help in the research of artificial intelligence due to its functional approach to programming. This approach is what makes it really similar to the Turing Machine, because said machine is a mathematical representation of programming and functional programming is also a mathematical representation. Comparing Common Lisp with Clojure which is a Lisp dialect that we are learning, you soon realize that Lisp has not taken yet the world of programming because it is not a very obvious language, a lot of the mnemonics have to do with the assembly implementation of the language itself and not with the action that it makes in a higher level. I think this is one of the reasons why functional programming has not taken the...

Is really functional programming better?

Since the beginning of software development, we have used the same programing techniques, the author mentions that this is because it “closely resembles how a computer works at the hardware level: the processor fetches data from memory, performs elementary opera- tions on it, and writes the result back to a memory cell” (Hinsen, 2009). The only different technique that has been developed is functional programming, which was developed as a mathematical theory first and then into a programming language called LISP. So, we have two different approaches: functional programming and imperative programming.   Functional programming consists on composing functions for computations, just as previously mentioned, this paradigm was first a mathematical theory and thus a function is “a mapping from input values to output values” (Hinsen, 2009) not to be confused with subroutines. A big difference between functions from functional programming and from imperative programming is that functiona...

The best programming language

The reading "The Semicolon Wars" talks about the issues that come naturally from having many programming languages. One of the main issues is the lack of standardization of the context-free grammars and the immense number of programming languages. I understand the different approaches they have to work (Object-Oriented, Imperative, Declarative and Functional) but I believe that there is a need for standardization. I deeply agree with the statement that a programming language can be used as a tool to expand your understanding or as a thinking limitation. The author mentions " Object-oriented notions are now so deeply ingrained that they influence almost every new language " (Hayes, 2006) and I think this is really a problem because the Object-oriented approach is powerful but far from perfect as any of the other approaches.  The author mentions " I write programs in Lisp for the same reason I write prose in English—not because it’s the best language, but becau...

My Name is Mota

Hi! I am expecting to learn more about the different programming languages and their uses. Also to understand why are there different programming languages and we still do not have an ultimate language. Whenever I am free I like to play musical instruments, learning how to play them is part of the fun. As of now I play Viola, Violin, Bass, Traverse Flute, Accordion, Piano, among others. Also I enjoy going to the movies and reading, I like action and superhero movies and action and philosophy books. The last thing I enjoy the most of my free time is programming contests, I like to challenge myself and try to solve programming challenges.  My favorite band is Red Hot Chili Peppers and I really like punk rock. As of TV I am currently watching Vikings and Brooklyn 99 so I like both comedy and tragic series. I hope you all have a great day.