Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Fanda

#1
newLISP newS /
January 06, 2009, 01:22:40 PM
Hello Cormullion, yes, vision was intricate :-)

There is definitely more stuff that I would like to share, but next time I might just use something premanufactured instead of building it from scratch. Time and other resources are needed for my other hobbies as well. I might eventually create a new website with easier to remember (and spell) name. I just can't resist to share and play :-)



One of the last things I used newLISP for is this website (in Czech only):

http://charlottemarie.cz/">http://charlottemarie.cz/

It has only static pages. I created a basic template, menu and corresponding content and just used script to generate the pages. It works flawlessly and I couldn't do it so elegantly or so fast without newLISP.



Yes, Clojure is my next pet language. I would like to move into JVM world. I am dreaming up some nice applications. Anyway, newLISP stays in my toolbox.



Just to tease you little bit about Clojure, look at Clojure Series at WRITING/CODING. I guess you share some interests with Eric:

http://writingcoding.blogspot.com/2008/06/clojure-series-table-of-contents.html">http://writingcoding.blogspot.com/2008/ ... tents.html">http://writingcoding.blogspot.com/2008/06/clojure-series-table-of-contents.html



Take care, Fanda
#2
newLISP newS / Shutdown of www.intricatevisions.com
January 05, 2009, 02:52:01 PM
Dear newLISPers!



Website http://intricatevisions.com/">http://intricatevisions.com/ will be shut down on Jan 10th 2009.



Please, download and save anything dear to your heart. Take anything you might find useful:

http://intricatevisions.com/index.cgi?page=newlisp">http://intricatevisions.com/index.cgi?page=newlisp

http://intricatevisions.com/download/newLISP.ini">http://intricatevisions.com/download/newLISP.ini

http://intricatevisions.com/newlispweb/">http://intricatevisions.com/newlispweb/



Sorry for broken links...



Feel free to ask me on this forum (using private message), if you miss/need something from my website.



Many happy moments with newLISP in year 2009!



Greetings, Frantisek
#3
newLISP newS /
October 12, 2008, 04:57:32 AM
Quote from: "DrDave"What is it that dont you like about using
> (apply list '(a b c d) 2)


It combines two different concepts - applying and reducing. When I read the code, I need to count how many parameters 'apply' function has to decipher what action is being taken. That can be confusing. Separate function for reducing would be IMHO better.



Fanda
#4
newLISP newS /
October 12, 2008, 03:11:27 AM
Hello newlispers!

Since there is gonna be a new newLISP version, which makes some breaking changes, it is a good time to introduce new things and do some cleanup :-)



I am proposing to change behavior of 'dup'. Currently:
> (dup 'a 5)
(a a a a a)
> (dup "a" 5)
"aaaaa"

In my opinion, it would be nice if 'dup' always returned a list. If string is needed, use 'join':
> (dup 'a 5)
(a a a a a)
> (dup "a" 5)
("a" "a" "a" "a" "a")
> (join (dup "a" 5))
"aaaaa"




Another, IMO confusing behavior, is overloaded apply (currently doesn't work?):
> (apply list '(a b c d) 2)
(((a b) c) d)

More readable would be to introduce new function 'reduce' - works as (apply op list 2):
> (reduce list '(a b c d))
(((a b) c) d)
> (reduce list 'init '(a b c d))
((((init a) b) c) d)


Greetings, Frantisek



PS: Yes, I am still using newLISP :-) I use it at work to parse text files and at home to generate web pages. It is also a nice calculator, if you need to do some numerical calculations.
#5
newLISP newS /
February 24, 2008, 02:43:19 AM
I am happy about the change. I couldn't reach newlisp.org from time to time in the past. I wish you more luck with the current provider!



Fanda
#6
Anything else we might add? /
February 24, 2008, 02:29:22 AM
Link that worked for me is:

http://sourceforge.net/projects/reflisp/">http://sourceforge.net/projects/reflisp/



LISP is an ancient language and I am not surprised that there are so many implementations. At the same time it's interesting to see another language so close to newLISP. I guess - good ideas never die! ;-)



Fanda
#7
Anything else we might add? /
February 22, 2008, 12:20:32 PM
Hi Pavel!

Welcome to our forum!



I really love the papers you wrote about programming. I read your http://www.elica.net/download/papers/ElicaLogoObjects.pdf">http://www.elica.net/download/papers/El ... bjects.pdf">http://www.elica.net/download/papers/ElicaLogoObjects.pdf

and it's funny, how REBOL uses Logo-like syntax and semantics. Actually it was newBert, who pointed us to Elica:

http://www.alh.net/newlisp/phpbb/viewtopic.php?t=1933">http://www.alh.net/newlisp/phpbb/viewtopic.php?t=1933



I tried to reimplement an example from that paper:

http://intricatevisions.com/index.cgi?page=nlcode">http://intricatevisions.com/index.cgi?page=nlcode



As currently a C++ programmer, I can say that I enjoy simplicity of newLISP, Elica and REBOL very much :-)



Fanda



PS: By any chance... Do you have Czech heritage?
#8
newLISP and the O.S. /
February 16, 2008, 02:39:00 AM
Thumbs up! I like it too! ;-)



Fanda
#9
Anything else we might add? / OOP and FP
February 07, 2008, 12:05:34 PM
To me, it's a great thing to have a language allowing you to use both OOP and FP techniques. That's why I wanted to have OOP in newLISP so much. I can actually model some interesting things with it.



My guess is that languages like Python and Ruby are so popular, because they also allow both.



I see a great beauty in declaring class with methods written in functional style. It looks so much better than imperative for/while loops.



[Warning: commercial follows]

I have also been searching and found interesting language called Scala. It is compiled, runs on the JVM, can import Java libraries, supports OOP and FP in a new way (pattern matching on objects/types) and has interesting ways how to extend it. I don't understand it yet and it seems much more complex than newLISP, but I think it's worth looking into :-)



Fanda



PS: It is funny, but after some programming using my OOP framework, I came to understanding that FOOP has some interesting properties, which I would like to add to OOP framework :-)
#10
Anything else we might add? /
February 02, 2008, 02:53:38 PM
Quote from: "Jeff"concat


Actually, I would suggest something similar. I like how other LISPs use '!' at the end of their functions to imply destructive behaviour. It makes it very clear. See for example dotlisp:

http://dotlisp.sourceforge.net/dotlisp.htm#Lists">http://dotlisp.sourceforge.net/dotlisp.htm#Lists



Fanda
#11
Anything else we might add? /
January 31, 2008, 02:42:55 AM
When I study new languages, I usually see what applications have been written in them.



newLISP is web-ready with many functions built-in, good for prototyping and having fun in general. Any kind of a script, which is usually written in Python/Perl/Ruby/Tcl/REBOL can be written easily. It can be embedded into applications, but license is little strict about commercial software.



Haskell is a functional language with its purity, very strong typing and other magic. I have seen mostly research-style or very specialized kind of applications (excluding text editor written recently and other things which I haven't seen :-)



Fanda
#12
Anything else we might add? /
January 31, 2008, 02:24:32 AM
Actually, I like parenthesis in newLISP and in any other LISP a lot. It makes it easy to see with what parameters have you called the function. Languages like REBOL have managed to get rid of some of the parenthesis by defining exactly how many parameters can you pass to a function.



In my opinion it sometimes makes things harder to read, because you have to remember exactly how many parameters function takes.
if not value? 'word [print "word is not set"]
(if (not (value? 'word)) (print "word is not set"))


string: "let's talk about REBOL"
if find string "talk" [print "found"]

(if (find string "talk") (print "found"))


By limiting the number of parameters you cannot define functions like 'min' with variable number of parameters. REBOL has 'min' for exactly 2 values only.



Every way has its advantages. Personally, I would keep parenthesis as much as possible :-)



Fanda



PS: Examples taken from:

http://www.rebol.com/docs/core23/rebolcore-4.html">http://www.rebol.com/docs/core23/rebolcore-4.html

http://www.rebol.com/docs/dictionary.html">http://www.rebol.com/docs/dictionary.html

http://www.rebol.com/docs/words/wmin.html">http://www.rebol.com/docs/words/wmin.html
#13
Anything else we might add? /
January 30, 2008, 01:23:27 AM
My expectations were quite high, but there are some good things to look at ;-)



I believe that for example Clojure innovates more:

http://clojure.sourceforge.net/">http://clojure.sourceforge.net/



Fanda
#14
newLISP newS /
January 29, 2008, 04:08:20 AM
Error when using macro is that argKey is 'action NOT action.


(define-macro (clientParams-get argKey)
   (println argKey)
   (println (lookup argKey clientParams) )
);define

> (clientParams-get 'action)
'action
nil
nil
#15
newLISP newS /
January 29, 2008, 03:59:56 AM
Either leave it as a macro and run it:
> (clientParams-get action)
my action
"my action"


or change it to normal function and run it:
(define (clientParams-get argKey)
   (println (lookup argKey clientParams) )
);define

> (clientParams-get 'action)
my action
"my action"