hello together, i want to write a chess engine while learning LISP and i wanted to know your opinions. i know pretty much nothing about LISP but i know it's not statically typed so bitboards are not an options but maybe i shouldn't even think about using classical methods in LISP.
i want to change language because whenever i'm (re)writing an engine in C/++ i feel like i'm repeating a pattern and it's getting boring, a new language can bring another point of view and _maybe_ give me new ideas.
thanks
PS.
other languages are totally possible, i was also considering learning haskell because it's fast and a functional language but i know nothing about FP
tcusr wrote: ↑Mon Jan 03, 2022 1:09 pm
hello together, i want to write a chess engine while learning LISP and i wanted to know your opinions. i know pretty much nothing about LISP but i know it's not statically typed so bitboards are not an options but maybe i shouldn't even think about using classical methods in LISP.
I really don't know very much about LISP, too, but I thought that Common LISP has data types like (signed-byte 64) or (unsigned-byte 64) and bitwise operations like logand, logior, logxor that may be suitable for bitboards. Did you check that?
Sven Schüle (engine author: Jumbo, KnockOut, Surprise)
tcusr wrote: ↑Mon Jan 03, 2022 1:09 pm
hello together, i want to write a chess engine while learning LISP and i wanted to know your opinions. i know pretty much nothing about LISP but i know it's not statically typed so bitboards are not an options but maybe i shouldn't even think about using classical methods in LISP.
I really don't know very much about LISP, too, but I thought that Common LISP has data types like (signed-byte 64) or (unsigned-byte 64) and bitwise operations like logand, logior, logxor that may be suitable for bitboards. Did you check that?
good to know, choosing a dialect was also difficult because i don't really understand their differences.
i'll look into that, thanks
LISP is too slow. All functional languages are too slow. They have only theoretic value. If you don't care about speed Prolog or XSLT is an interesting alternative. Just declarative programming. Otherwise take a functional language.
Might be that later on you regret the slow speed. So better take C++ or C# if you do care.
Henk wrote: ↑Mon Jan 03, 2022 10:47 pm
LISP is too slow. All functional languages are too slow. They have only theoretic value. If you don't care about speed Prolog or XSLT is an interesting alternative. Just declarative programming. Otherwise take a functional language.
Might be that later on you regret the slow speed. So better take C++ or C# if you do care.
By the way C# has lambda expressions too.
i was also worried about speed but then i found this OS in Common LISP.
Henk wrote: ↑Mon Jan 03, 2022 10:47 pm
LISP is too slow. All functional languages are too slow. They have only theoretic value. If you don't care about speed Prolog or XSLT is an interesting alternative. Just declarative programming. Otherwise take a functional language.
Might be that later on you regret the slow speed. So better take C++ or C# if you do care.
By the way C# has lambda expressions too.
i was also worried about speed but then i found this OS in Common LISP.
I just don't believe Common Lisp would be as fast as C languages. Common Lisp almost a functional language. So comparable speed as one of the optimized functional languages. But still too slow. By the way I programmed two years in a Lisp dialect. Was fun. They had a compiler so Lisp being compiled into C. But still too slow. But you miss strong type checking. So you get more annoying run time errors. They used AVL trees to implement association and property lists.
You may code it in C++ or C too. IMHO alpha-beta considers chess as a whole. The concept called "constraint satisfaction" introduced in AI specially Prolog might be a viable replacement for alpha-beta.