We will kick you out if you send crap to this list. One more mail like that and you are out.
> On 01 Aug 2015, at 15:41, Kjell Godo <squeakl...@gmail.com> wrote: > > is there anybody > > here > > who knows both > > Haskell and Smalltalk ? > > Can Smalltalk benefit from > > functional ideas > > and > > Haskell's ideas about > > Immutability > > Currying > > Function composition and > > the State and IO Monads ? > > I like the way Haskell is now based on > > Category Theory > > which is the mathematics of > > function composition . > > Haskell was not always thus > > it had a > > pre Category Theory > > epoch . > > which apparently > > was a UM or > > Ugly Mess . > > Can these ideas be applied to > > Smalltalk? > > And would it be good? > > Can Smalltalk have a way of making a > > framework > > that has an > > API > > and is statically typed inside > > using a Haskell like type system? > > On Saturday, August 1, 2015, Kjell Godo <squeakl...@gmail.com > <mailto:squeakl...@gmail.com>> wrote: > > > On Monday, July 6, 2015, Eliot Miranda <eliot.mira...@gmail.com > <javascript:_e(%7B%7D,'cvml','eliot.mira...@gmail.com');>> wrote: > Hi Kjell, > > On Jul 6, 2015, at 6:16 AM, Kjell Godo <squeakl...@gmail.com <>> wrote: > >> Thank you for the detailed reply Andreas >> >> >> >> Are there any Smalltalk packages implementing >> >> Category Theory based >> >> functional programming constructs >> >> for function composition like >> >> functors , applicatives , monads , arrows , etc ? >> >> >> >> Do people have opinions about whether or not >> >> these plus immutable data structures would be good for managing state >> >> in Smalltalk like they do it in Haskell etc? i know that monads are not >> built >> >> into Haskell but are implemented as addons via Haskell packages. >> >> My Haskell friend said all you need to do functional programming is >> >> first class functions >> >> which Smalltalk Block contexts almost are except they lack their own stack? >> >> if you wrap a Block in a Function Object do you then get the stack >> >> effect so you can essentially call the Block recursively? > > The Pharo & Squeak dialects, along with most others, now have closures, so > blocks are fully recursive. > >> >> i have been wondering about taking a crack at implementing these >> >> in Smalltalk and i wonder if it would be >> >> theoretically possible >> >> to speed them up by inlining them via the Smalltalk compiler > > The compiler already inlines closures in a few key control messages such as > ifTrue: whileTrue: and:. > > > I recommend spending some time reading the code for the core execution > classes and the compiler, and running examples interactively to learn how > the system works. It's a fun process and well supported by the tools. > Remember that the debugger includes a meta circular interpreter for executing > the system's bytecode, and that the compiler compiles source to bytecode in > the firm of CompiledMethod instances you can inspect, decompile and list > their bytecode. > > All the questions you have above you can answer for yourself by running > examples and using the tools to observe what happens. This is a route to > mastering the system; IMNERHO the best. > > > is there any tutorial? > > how do i do this? > > >> Thank you > > Eliot (phone) > > >> On Saturday, November 8, 2014, Andreas Wacknitz <a.wackn...@gmx.de <>> wrote: >> >>> Am 07.11.2014 um 16:51 schrieb Kjell Godo <squeakl...@gmail.com <>>: >>> >>> This is off topic. >>> >>> I tried to post it as a top level thread but I have become unknown. >> Why do you expect that? Many people here are using Smalltalk for years. >> Just because you have been silent for some time doesn’t mean everybody will >> forget about you :) >> >>> >>> I don't know if you want this crap in here but I have decided not to wait >>> for the >>> >>> postmaster to get back to me on the subject of becoming known. Feel free. >>> >>> >>> >>> >>> >>> ( Original-SUBJECT: "( picoVerse-:( what about state , is state really >>> evil? ) )" ) >>> >>> >>> >>> >>> >>> >>> I am a Smalltalker. >>> >>> But in the past few months i have been running with the Haskellers. >>> >>> The Haskellers hate state. >>> >>> This seemed strange at first because as a Smalltalker i love(d) state. >>> State iswas my friend. >>> >>> 90% of my life as a Smalltalker is state wrangling. I am a state herder. >>> >>> The debugger is my staff I use to whack the state. And TestCase is my >>> sheep dog. >>> >>> But to the Haskellers >>> >>> state is >>> >>> the evil trinity >>> >>> of >>> >>> satan the anti christ and the false prophet >>> >>> all rolled into one. >>> >>> State is the true dev incarnation of the total catastrophe of development >>> Armageddon. >>> >>> Blood up to the bridles for hundreds of miles. Dogs and cats living >>> together. Mass hysteria. >>> >>> They say. >>> >>> I'm not sure i quite get it yet but they keep preaching on this one point >>> most of all. >>> >>> State is evil. >>> >>> You must keep all state in a Monad. As many methods/functions m as possible >>> >>> must be 100% dependent on the input parameters ONLY. >>> >>> No hidden instance variables affecting the return value of m are allowed. >>> >>> The only effect m can have is to return a value. >>> >>> If all this is true then m is pure. >>> >>> And pure is good. Pure is very good. And the wind says >>> >>> very. >>> >>> So i wonder if any of you fellow >>> >>> Smalltalkers >>> >>> have thought about this at all. >> >> First, there are no good definitions of what is an object oriented language >> and what is a functional language. >> Thus, languages like C++, C#, Java are being considered object oriented. But >> their object orientation is not the same like Smalltalk’s. >> The same problem exists in the functional language world: Some consider LISP >> being functional, some deny that. >> >> Second, for some years I am constantly seeking for „the best“ language to >> solve my problems in. Alas I wasn’t successful yet and don’t expect >> to be successful in the future. Every programming paradigm has its strengths >> and weaknesses when it comes to real world problems. >> So in my eyes it is best to know the different programming paradigms and its >> representative languages in order to be able to choose the >> best fitting language for your problem at hand. >> >> Third, there have been many attempts to create multi-paradigm languages >> (like C++, C#, Java, Scala, …). The idea behind is simple: combine >> the best characteristics. In my eyes all of them failed because what always >> have been created is Frankenstein’s monster. When you combine >> paradigms you will may get some advantages of all but sure you will get a >> lot of additional complexity. >> >> Fourth, it has been said many times before: What makes Smalltalk so nice is >> not only the language. It’s the whole system: the language, duck typing, >> the image (object world), the tools, the VM, the simplicity, the elegance, … >> And last but not least the communities around. >> >> Regards >> Andreas >> >> PS: If you are interested in functional programming and don’t like static >> typing you should have a look at Clojure. It has some nice ideas about >> how to deal with state concurrently. >> >> >> >>> Thanks >>> >>> Kjell E Godø >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> (((((((((( Maybe Smalltalk should be called Statewalk >>> >>> as in yak it up fuzz ball. )))))))))) >>> >>