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

Lisp, the sacred language of the now and forever

Name: Anonymous 2015-02-18 8:24

La lingua sacra ed eterna

I can feel the godforce emanating from it.

You will soon have your God and you will construct it with your own hands.

Name: Anonymous 2015-02-20 19:44

>>40
My point still stands. Think about what you think you know before posting it.

Name: Anonymous 2015-02-20 19:45

Stop arguing for the sake of arguing, fagshits.

Name: Anonymous 2015-02-20 19:52

>>42
Piss off!

Name: Anonymous 2015-02-20 19:57

>>41
My point still stands: Scheme is only a poorer and less portable version of Common Lisp. Certainly its metaprogramming support is not any better. In fact, it's even worse because of only one namespace, because of forced hygiene etc. Thus, writing a correct codewalker in Scheme is no easier than in CL (which is very hard).

There was a similar sentiment expressed in Let Over Lambda, too. You see, even experienced Lispers admit the weaknesses of Lisp metaprogramming, and only you - an obvious newbie to Lisp - are trying to deny it. To no avail except amusing me, of course.

Name: Anonymous 2015-02-20 19:59

>>39
C was created before Sepples, you ignoramus. Scheme on the other hand was created later than CL.

Name: Anonymous 2015-02-20 20:09

>>44
because of only one namespace, because of forced hygiene
To think, features that restrict the semantics of a language make it more difficult to understand programmatically! Oh the irony!
an obvious newbie to Lisp
I wrote an ANSI Lisp compiler in Scheme when I was 12, thanks.
To no avail except amusing me
Actually I'm amusing myself more.

>>45
Yes, that's the entire fucking point of what I was saying, shitfarts.

Name: Anonymous 2015-02-20 20:10

Scheme is such unadulterated shit:

http://stackoverflow.com/questions/25824466/how-do-i-write-anaphoric-macros-in-portable-scheme

How do I write anaphoric macros in portable scheme?
Yes, you can write it in a portable way assuming that R6RS is portable enough for you. (The same cannot be said on R7RS

While a Common Lisper just writes macros and uses them for pleasure, the Scheme faggots spend their time blabbering about some "R6RS", "SRFI" and eventually admit that their shitty language is non-portable and doesn't work.

Name: Anonymous 2015-02-20 20:13

>>46
I still don't see your point. >>38-kun said that Scheme is just a poorer and less portable version of Common Lisp. You've admitted that Scheme was created later than Common Lisp (and thus had all the chances to be a poorer and less portable version of it). You've also admitted that C was created before C++ and thus couldn't possibly be a poorer version of it. So what is your point in >>39? It is a contradiction in itself.

Name: Anonymous 2015-02-20 20:19

>>47
SRFI means Scheme Request for Implementation. A Scheme program written in RnRS Scheme using some SRFIs is portable between Schemes supporting RnRS which implement those SRFIs. This is common knowledge to anyone who has touched the language, and the implementations are numerous.

Common Lisp, however, has about four 30-year-old implementations, each of which contains a buggy, ad-hoc reimplementation of half of Common Lisp.

Name: Anonymous 2015-02-20 20:23

>>49
So they aimed to make a minimalistic, standardized language, but created a trash-heap of loads of different versions with loads of non-portable implementations none of which suppor those standards.

Name: Anonymous 2015-02-20 20:24

>>48
Are you autistic?
>>39:
[>>38] is as valid as [invalid statement]
Get it now? At no point did I mention the fucking time of implementation of anything. For some reason you decided that was a cornerstone of the argument and spent all your time spacking out on it.

Name: Anonymous 2015-02-20 20:28

>>50
So they aimed to make a minimalistic, standardized language
Correct
but created a trash-heap of loads of different versions
They've created 7 revisions of a language specification. That's it.
loads of non-portable implementations
Scheme is portable. Whatever implementations of Scheme you are talking about may not be portable (for your definition of portable -- what is that, by the way?)
none of which suppor those standards.
Each SRFI document has an implementation listed at the end.

Name: Anonymous 2015-02-21 3:42

>>36
I've been reading On Lisp recently
good for you.

Though the abbreviation can’t be passed to apply or funcall.
What? What's the code?
* (defun a (&rest vars) (apply #'+ vars))
A
* (a 1 2 3)
6
* (funcall #'a 1 2 3)
6


whereas if we had tried to define an abbreviationfor quote using a normal macro,
(defmacro q (obj)
‘(quote ,obj))

it would work in isolation,
(eq ’a (q a))
T
but not when nested.

Actually it does work when nested as far as eval in concerned.
* (defmacro q (f) `(quote ,f))
Q
* (q 2)
2
* (q (q 2))
(Q 2)
* (eval (q (q 2)))
2


The book saying it doesn't work because (q (q 2)) evaluates to (q 2) rather than (quote 2). These expression will both evaluate to 2, but as they are, equal thinks they are different. If that's actually a problem, you could try to write q so that it inspects the form inside and replaces all nested q's with quote's, but it would be difficult since not every q in the car position will neccessarily be a call to q. Not every sexp will be evaluated, or evaluated in vanilla lisp. Replacing every q inside in the car position with quote might not always be what you want.

So you can bullshit all you want, but that doesn't change the fact that Lisp is a very bad metaprogramming language and very hard to use correctly. There are all sorts of corner cases that the shitty unannotated text s-exps cannot handle.
I didn't get the first problem. The second example I found silly. The quotes do get weird, though. They get really weird when you nest quasiquotes. But still, I'd rather have the quotes than not have them.

>>44
Thus, writing a correct codewalker in Scheme is no easier than in CL (which is very hard).
Nope, it's easier in scheme than lisp. It's harder in lisp because of all the macros in the standard library. You need to be able to walk them all and they all introduce their own context to the walk.

There was a similar sentiment expressed in Let Over Lambda, too. You see, even experienced Lispers admit the weaknesses of Lisp metaprogramming, and only you - an obvious newbie to Lisp - are trying to deny it.
I believe lisp could do what it does better, but I have yet to find another language that can do what lisp does as well. But you don't need a language to do what lisp does. You can write code that writes code for you. It's just time consuming to design a language and compile it to another. And once it's created, adjusting that language takes effort. In lisp, it's easier.

Name: Anonymous 2015-02-21 3:56

>>47
But that's a terrible thing to do in any LISP. I don't consider it good form.

Name: Alexander Dubček 2015-02-21 4:35

Dubs, the sacred language of the now and forever.

Name: Anonymous 2015-02-21 4:49

>>55
It's been a while since I've checked anything this holy.

Name: Anonymous 2015-02-21 4:54

>>23
How could anybody read this and not hate Lisp?

Name: Anonymous 2015-02-21 8:40

>>52
7 revisions
That's it.

Hahahaha. Scheme is shit. Common Lisp has only two revisions, plus the second one is already fully supported by at least 4 major implementations.

Scheme is portable

Read up on any popular implementation of Scheme, and you'll see that it doesn't implement something from DA STANDARD, whether it be continuations or macros or something else.

>>46
I wrote CLISP back in 1987 when I was ten. So trust me, boy, when I tell you: you're a newbie to Lisp.

Name: Anonymous 2015-02-21 8:46

http://wiki.call-cc.org/man/4/Deviations%20from%20the%20standard

It doesn't even implement R5RS fully, and they're already working on R7RS? Ahahahahaha tell me Scheme is portable.

Name: Anonymous 2015-02-21 8:50

>>57
But I don't read religious literature, therefore I have not read that post. Thus my hate for LITHP is based on different foundations.

Name: Anonymous 2015-02-21 8:55

>>59

s7 Scheme is the BEST LISP

Use it with confidence, mein freunds.

Name: Anonymous 2015-02-21 9:12

>>61
A compiler made by an air travel company? Negro, please.

http://www.trip.ru/cheap-flights/with/s7/s7-tickets?gclid=CIacsofm8sMCFcQCcwod13QAnQ

I believe it is compatible with r5rs and r7rs
I believe
I don't read religious literature, thank you.

Name: Anonymous 2015-02-21 9:37

>>54
That's because you're a pathetic, limited person. Anaphoric macros are one of the most basic displays of Lisp's power, the kind of power which is absent from boring "safe" languages (and from the minds of their adepts).

Common Lisp can teach people to do with their computers things they didn't believe possible. And Scheme? It's just a watered-down strict Haskell. Forced hygine and purity everywhere pleases only low-intelligence law-abiding average Joe types.

Name: Anonymous 2015-02-21 10:18

I don't read religious literature

That's because you're a pathetic, limited person.

Name: Anonymous 2015-02-21 11:13

What the fuck are anaphoric macros used for? Don't say C is crippled because it doesn't have these, write a reduced case for C where its beneficial to have an anaphoric macro then i'll listen.

Name: Anonymous 2015-02-21 11:36

d u b s

Name: Anonymous 2015-02-21 14:46

>>65
behold the power of anaphoric macros
#include "void.h" //gist.github.com/FrozenVoid/87e6ad6212ac9ce496e0#file-void-h"
STDSTART
/* advanced anaphoric macro stolen from LISP wizards

(defmacro aif (test-form then-form &optional else-form)
`(let ((it ,test-form))
(if it ,then-form ,else-form)))

(aif (+ 2 7)
(format nil "~A does not equal NIL." it)
(format nil "~A does equal NIL." it))
;; ? "9 does not equal NIL."
*/
#define aif(expr,action1,action2) ({auto master_programmer_secret_storage_device=expr;/*very advanced and known only to LISP wizards*/;\
if(0!=master_programmer_secret_storage_device/*powerful lambda-calculus mathemathics, you won't understand*/){action1(master_programmer_secret_storage_device,"does not equal NULL.");}else{/*extremely esoteric and arcane secondary path*/action2(master_programmer_secret_storage_device,"does equal NULL.");};/*we don't return nothing, because the secret of master_programmer_secret_storage_device must be kept */;})
aif(2+7,p,p);//p prints arguments to stdout or FILE* see textio.h https://gist.github.com/FrozenVoid/87e6ad6212ac9ce496e0

STDEND

Name: Anonymous 2015-02-21 14:58

>>67
Arguments of aif must not be inside aif : action1(a , b) is hardcoded here

Name: Anonymous 2015-02-21 15:04

minor fix >>68
#include "void.h" //gist.github.com/FrozenVoid/87e6ad6212ac9ce496e0#file-void-h"
STDSTART
/* advanced anaphoric macro stolen from LISP wizards

(defmacro aif (test-form then-form &optional else-form)
`(let ((it ,test-form))
(if it ,then-form ,else-form)))

(aif (+ 2 7)
(format nil "~A does not equal NIL." it)
(format nil "~A does equal NIL." it))
;; ? "9 does not equal NIL."
*/
#define aif(expr,action1,action2) ({auto master_programmer_secret_storage_device=expr;/*very advanced and known only to LISP wizards*/;\
if(0!=master_programmer_secret_storage_device/*powerful lambda-calculus mathemathics, you won't understand*/){action1;}else{/*extremely esoteric and arcane secondary path*/action2;};/*we don't return nothing, because the secret of master_programmer_secret_storage_device must be kept */;})
aif(2+7,p(master_programmer_secret_storage_device,"does not equal NULL."),p(master_programmer_secret_storage_device,"does equal NULL."));//p prints arguments to stdout or FILE* see textio.h https://gist.github.com/FrozenVoid/87e6ad6212ac9ce496e0
aif(0+0+1-2+1,p(master_programmer_secret_storage_device,"does not equal NULL."),p(master_programmer_secret_storage_device,"does equal NULL."));

STDEND

Name: Anonymous 2015-02-21 16:08

>>69
Fix your formatting, bitch.

Name: Anonymous 2015-02-21 16:23

>>70
Perhaps you might be interested in http://astyle.sourceforge.net/ ?

Artistic Style is a source code indenter, formatter, and beautifier for the C, C++, C++/CLI, Objective‑C, C# and Java programming languages.

When indenting source code, we as programmers have a tendency to use both spaces and tab characters to create the wanted indentation. Moreover, some editors by default insert spaces instead of tabs when pressing the tab key, and other editors (Emacs for example) have the ability to "pretty up" lines by automatically setting up the white space before the code on the line, possibly inserting spaces in a code that up to now used only tabs for indentation.

Since the NUMBER of space characters showed on screen for each tab character in the source code changes between editors (unless the user sets up the number to his liking...), one of the standard problems programmers are facing when moving from one editor to another is that code containing both spaces and tabs that was up to now perfectly indented, suddenly becomes a mess to look at when changing to another editor. Even if you as a programmer take care to ONLY use spaces or tabs, looking at other people's source code can still be problematic.

Name: Anonymous 2015-02-21 16:43

>>71
Code should be XML, not text.

Name: Anonymous 2015-02-21 17:05

Frozen in the void*!!

Name: Anonymous 2015-02-21 20:04

>>73
const void*

Name: Anonymous 2015-02-21 21:18

Frozenvoid has returned! /prog/ is complete once again!

Name: Anonymous 2015-02-21 21:44

>>77
checked

Name: Anonymous 2015-02-21 22:09

I claim these dubs for the People's Republic of Checkem.

Name: Anonymous 2015-02-21 23:59

>>72
I fear people might take this seriously.

Name: Anonymous 2015-02-22 1:02

I fear the next incoming dubs.

Name: Anonymous 2015-02-22 1:14

Why don't we just rename this board /dubs/?

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