Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

LispCraft

Name: Anonymous 2011-04-09 5:21

Hi, all. I finally completed Warcraft 2 implementation in LISP.
http://img859.imageshack.us/i/52320836.png/

Took me a few months, though, but mostly because I was too lazy and my DSL is still pretty buggy, has poor debugging support and long compilation times (takes about 30 seconds to reload source file). Anyway, this proves, that writing a game in Lisp is relatively easy, even for a single person.

Name: Anonymous 2011-04-10 2:16

>>40
It's implementation defined, and is usually implemented through a third party library. It's not a part of any C/C++ compiler available today.

Name: Anonymous 2011-04-10 2:26

>>41
It's in the standard, optional, but in the standard. Sepples is garbage collected.
Enjoy your toy garbage collected linear-bounded tarpit.

Name: Anonymous 2011-04-10 2:34

>>39
unit and regression testing coupled with sound idiomatic programming
Sounds time consuming and overly complicated, when in dymaic language you can have working program with little effort.

Name: Anonymous 2011-04-10 3:15

>>43
"working"

Name: Anonymous 2011-04-10 3:34

>>44
Use proper quotes, 66faggot99.

Name: Anonymous 2011-04-10 4:15

Jesus Christ, another static language retard.

Name: Anonymous 2011-04-10 5:12

>>43
dymaic language
Nope. Nope. And more nope. Dynamic languages actually require a lot more unit and regression testing than static languages, to overcome type and identifier name resolution being resolved at runtime, whereas with static languages those types of bugs are caught at compile time and don't need runtime tests.

If you're using dynamic languages, you absolutely at least better have a regression test suite for any non-hobbyist project. Sure, dynamic languages are great for putting together one-off scripts and fire and forget code, but when it comes to maintaining and evolving a code base, dynamic languages can be painful without a proper test suite in place.

This is a well known problem of dynamic languages in the industry, and it seems only that amateurs and hobbyists aren't aware of this inherent problem.

In fact, pretty much any seasoned dynamic typing programmer will consider your code written in a dynamic language to be broken unless it has some automated unit tests.

https://docs.google.com/View?id=dcsvntt2_25wpjvbbhk

http://www.gamedev.net/blog/883/entry-2249305-scripting-languages-are-overrated/

http://codemonkeyism.com/the-unit-testing-lie-aka-dynamic-language-lie/

Name: Anonymous 2011-04-10 5:30

>>47
identifier name resolution being resolved at runtime
What the fuck.
(define (hax anus)
  (my anus))

# compile: unbound identifier in module in: my

Name: Anonymous 2011-04-10 5:33

>>47
In practice, you need to run program once and check its features and you don't have to care about udefined/untyped cases.

Name: Anonymous 2011-04-10 5:35

>>49
So, my LISP programs work, even if half of identifiers aren't binded yet.

Name: Anonymous 2011-04-10 5:38

>>48
That works in scheme or CL, but in FIOC, FFOC, Ruby and other hipster languages that us duck typing, until a function/method is actually ran, it's body is not fully evaluated.

Name: Anonymous 2011-04-10 5:40

>>51
Guess why they suck and are called toy languages.

Name: Anonymous 2011-04-10 5:42

>>48
This means, that you can't use global variables, without declaring them statically. Scheme is a statically typed language.

Name: Anonymous 2011-04-10 5:45

>>52
Yep. Static binding is inconvinient in REPL, where you spend most time during Lisping, so strong-typing and early binding makes Lisp not acceptable Lisp. Would be nice to have Lisp with weak typing, like BASH, where everything is a string.

Name: Anonymous 2011-04-10 5:48

>>54
Also, there are no undefined variables in BASH, they just hold empty strings.

Name: Anonymous 2011-04-10 5:50

>>53-55
Retardation is not /prog/-related. You may want to go back to /b/, now.

Name: Anonymous 2011-04-10 5:53

>>56
And everybody else went and chased static. And they've been doing it like crazy. And they've, in my opinion, reached the theoretical bounds of what they can deliver, and it has FAILED. These static type systems, they're WRONG. Wrong in the sense that when you try to do something, and they say: No, category theory doesn't allow that, because it's not elegant... Hey man: who's wrong? The person who's trying to write the program, or the type system?

Name: Anonymous 2011-04-10 5:54

Monad is just one of typeclasses. And a typeclass is some abstract entity, that allows concrete types to use some functions. And the nature of these functions depends on a typeclass of a concrete type, and how these functions implemented for a concrete type depends on the embodiment of the typeclass of that type. For example, monad Maybe is a type, computations, embedded into a monad of which, return either result, embedded into one of its data constructors, or a second data constructor - Nothing.

Name: Anonymous 2011-04-10 5:56

>>57
One retarded at time, please. Now it's the static-typed C/C++ fanboy faggot moment. Come back later.

Name: Anonymous 2011-04-10 5:59

More precisely, polytypic functions capture families of polymorphic functions in one single template de nition. Instances of a polytypic function for speci c algebraic types
can be generated automatically by a compiler following the denitional structure of the types. However, the de nitional structure of an abstract type is, for maintainability
reasons, logically hidden and, sometimes, even physically unavailable

Name: Anonymous 2011-04-10 7:34

>>36-60
Please stick to the topic. If you feel you have an interesting topic to discuss please utilize existing threads which are about the topic or create a new one if they do not exist.

Name: Anonymous 2011-04-10 13:37

>>61
Thread successfully derailed. Suck my cock, ,,faggot''.

Name: Anonymous 2011-04-11 9:40

Name: Anonymous 2011-04-11 9:48

Clay language owns your "polytypic C++" shit

Name: sage 2011-04-17 18:37

sage

Name: Anonymous 2011-04-17 19:29

Is there actually an implementation of this DSL?

Name: Anonymous 2011-04-17 20:00

Name: Anonymous 2011-04-17 20:25

>>67
Is that a no?

Name: Anonymous 2011-04-17 20:27

>>68
It's run by spirits of the computer.

Name: Anonymous 2011-04-18 5:03

ran by Ghost Farts

Name: Anonymous 2011-04-18 22:16

>>66
Seriously, are you going to post it soon? Because I would like to see it.

Name: Anonymous 2013-03-18 18:58

I love you, Nikita-kun.

Name: Anonymous 2013-03-18 19:19

>>7
Wow! I myself already forgot I once had |> :: && and ||, but their usage proven to be messy and completely unreadable.

I now have
   <Condition0 = Do0
   |Condition1 = Do1
   ...
   |ConditionN = DoN
   >


And `|` there acts as OR, while & is AND.

Name: Anonymous 2013-03-18 19:20

>>73
That's really cute, Nikita-kun.

Name: Anonymous 2013-03-18 19:36

>>74
Not exactly. I now have to write "X lt Y" instead of "X < Y". At least `lt` is a message, so it can be overloaded, by something like: invertedInteger X = (lt Y = X gt Y)

Name: Anonymous 2013-03-18 20:09

>>75
Oh, now that's a downside. Can't you replace the < with { or ( or something?

Name: Anonymous 2013-03-18 20:24

>>75
Your language has no contexts?

Name: Anonymous 2013-03-18 20:39

>>76
(), [] and {} already reserved for more frequent stuff, while comparison operators are four times less used than if/else block, despite my use of pattern-matching where possible. I.e. less-than operator is less important than the `map` function, which is the most used function, deserving a single letter name `m`, if not it's own operator. Bitwise functions are not getting their operators at all, so no << or >> cryptic crap: Just (A xor B shl C)

Name: Anonymous 2013-03-18 20:47

>>77
What contexts? My language has no undeclared global variables, because they are confusing: i.e. toplevel acts as a big let, and all files you want as part of package must be explicitly included with compiler directive. So a main file of C/C++ compiler package could look like:

$(say 'compiling C/C++ compiler...') //would be executed at compile time
say 'loading C/C++ compiler...' //would be executed on package load
@include lexer parser expander optimizer generator assembler

$(say 'done compiling')
say 'done loading'

Name: Anonymous 2013-03-18 20:49

Vintage Nikita, I love who bumped this thread.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List