unofficial mirror of emacs-tangents@gnu.org
 help / color / mirror / Atom feed
* Re: (*) -> 1
       [not found]                 ` <878ri09bsh.fsf@telefonica.net>
@ 2023-01-19  8:37                   ` Jean Louis
  0 siblings, 0 replies; 18+ messages in thread
From: Jean Louis @ 2023-01-19  8:37 UTC (permalink / raw)
  To: Óscar Fuentes; +Cc: emacs-tangents

* Óscar Fuentes <ofv@wanadoo.es> [2023-01-18 17:09]:
> Sure^2. I was talking about _why_ (*) and (* a) are supported in Elisp.
> Once the language designer chose to support those expressions and
> decided that they must return a number (instead of something else like a
> partially applied function) the value they shall return comes from the
> properties of the underlying operation, of course.

OK and I understood that somebody decided to include that.

Why did they decide to include it?

Do you think it is only for `apply' reasons?

-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: (*) -> 1
       [not found]                 ` <87ilh28w9u.fsf@web.de>
@ 2023-01-19 14:54                   ` Jean Louis
       [not found]                   ` <Y8lZmM1EQ+wShgt2@protected.localdomain>
       [not found]                   ` <SJ0PR10MB5488B34F22BFC45644C9C647F3C49@SJ0PR10MB5488.namprd10.prod.outlook.com>
  2 siblings, 0 replies; 18+ messages in thread
From: Jean Louis @ 2023-01-19 14:54 UTC (permalink / raw)
  To: Michael Heerdegen; +Cc: emacs-tangents

* Michael Heerdegen <michael_heerdegen@web.de> [2023-01-19 16:56]:
> I'm out.  Enough information has been presented to you to enable you to
> learn.  But I cannot learn for you, you must do it yourself.

I did not ask for outside information, only if it is useful in Lisp,
apart from funny jokes and sketching of program.

-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: (*) -> 1
       [not found]                     ` <87r0vqa67k.fsf@gnu.org>
@ 2023-01-20  7:05                       ` Jean Louis
  2023-01-20  8:52                         ` Tassilo Horn
  0 siblings, 1 reply; 18+ messages in thread
From: Jean Louis @ 2023-01-20  7:05 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: Michael Heerdegen, emacs-tangents

* Tassilo Horn <tsdh@gnu.org> [2023-01-19 18:35]:
> Jean Louis <bugs@gnu.support> writes:
> 
> > You found examples I am searching, though you can't provide references
> > where (*) is useful.
> 
> Gosh, Jean, of course nobody would literally write (*) but (apply #'*
> ...), and you'll find occurrences in emacs:

That has been said that is not necessarily problem or reason. 

Did you see reference to PicoLisp?

--
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [External] : Re: (*) -> 1
       [not found]                   ` <SJ0PR10MB5488B34F22BFC45644C9C647F3C49@SJ0PR10MB5488.namprd10.prod.outlook.com>
@ 2023-01-20  7:33                     ` Jean Louis
  0 siblings, 0 replies; 18+ messages in thread
From: Jean Louis @ 2023-01-20  7:33 UTC (permalink / raw)
  To: Drew Adams; +Cc: emacs-tangents

* Drew Adams <drew.adams@oracle.com> [2023-01-19 20:47]:
> > I'm out.  Enough information has been
> > presented to you to enable you to learn.
> > But I cannot learn for you, you must do
> > it yourself.
> > Michael.
> 
> Bingo.  Ditto.  Shoulda just considered it
> as trolling perhaps.  In any case, shoulda 
> stopped trying to help long ago.  Gave the 
> benefit of the doubt; wasted time helping.
> Maybe Dunning-Kruger?  Whatever.

My question was pretty clear from beginning. I did not ask for
theories, I was asking for for practical usage example in Lisp.

If you challenge me to use profanities, I can do that better than you.

-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: (*) -> 1
  2023-01-20  7:05                       ` Jean Louis
@ 2023-01-20  8:52                         ` Tassilo Horn
  2023-01-20 12:46                           ` Jean Louis
  0 siblings, 1 reply; 18+ messages in thread
From: Tassilo Horn @ 2023-01-20  8:52 UTC (permalink / raw)
  To: Jean Louis; +Cc: emacs-tangents

Jean Louis <bugs@gnu.support> writes:

>> Gosh, Jean, of course nobody would literally write (*) but (apply #'*
>> ...), and you'll find occurrences in emacs:
>
> That has been said that is not necessarily problem or reason. 

I don't understand that sentence.

> Did you see reference to PicoLisp?

Yes, and I think it's seriously wrong with

  : (+)
  -> NIL

where its docs say

  Returns the sum of all num arguments. When one of the arguments
  evaluates to NIL, it is returned immediately.

Well, in (+) there exists no argument evaluating to NIL and
mathematically, the sum of zero numbers is 0
(https://en.wikipedia.org/wiki/Empty_sum).  Same for the empty product
(*) which should be 1 (https://en.wikipedia.org/wiki/Empty_sum) but also
gives NIL in picolisp.

So why does it return NIL?  And why do you apparently consider that
useful?  And can something be useful even though it is incorrect?

Bye,
Tassilo



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: (*) -> 1
  2023-01-20  8:52                         ` Tassilo Horn
@ 2023-01-20 12:46                           ` Jean Louis
  2023-01-20 13:02                             ` Tassilo Horn
  0 siblings, 1 reply; 18+ messages in thread
From: Jean Louis @ 2023-01-20 12:46 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: emacs-tangents

* Tassilo Horn <tsdh@gnu.org> [2023-01-20 12:12]:
> Jean Louis <bugs@gnu.support> writes:
> 
> >> Gosh, Jean, of course nobody would literally write (*) but (apply #'*
> >> ...), and you'll find occurrences in emacs:
> >
> > That has been said that is not necessarily problem or reason. 
> 
> I don't understand that sentence.
> 
> > Did you see reference to PicoLisp?
> 
> Yes, and I think it's seriously wrong with
> 
>   : (+)
>   -> NIL
> 
> where its docs say
> 
>   Returns the sum of all num arguments. When one of the arguments
>   evaluates to NIL, it is returned immediately.

For some reason PicoLisp is quite different than other Lisp. I have
asked author about it.

15:07 <jmarciano> may somebody experienced with PicoLisp tell me if
                  (*) returning NIL in PicoLisp is obstacle or
                  feature? It is because I am trying to find use of
                  the function in other Lisp where (*) ➜ 1,
                  however, apparently, the use for it does not
                  exist. I have found PicoLisp returning NIL on
                  empty (*)
15:08 <jmarciano> Was author of PicoLisp aware that other Lisp
                  return (*) ➜ 1 at time of making it? 
15:08 <jmarciano> And what was decision of author, reasoning, why
                  not to include it?
15:08 <abu[m]> Hi jmarciano! Well, I'm the author.
15:08 <jmarciano> Which reasoning I favor, as I rather like NIL
                  returned, rather than finding out where did I
                  miss to place the numbers.
15:09 <jmarciano> Nice to meet you. 
15:09 <abu[m]> It is a "feature" that NIL propagates through
               arithmetics
15:09 <jmarciano> How does it help instead of providing identity
                  elements?
15:09 <abu[m]> (*) especially was not contemplated though, it is a
               pretty useless call
15:10 <abu[m]> but (+ 3 NIL) -> NIL was desired
15:10 <jmarciano> and why?
15:11 <jmarciano> Were you aware at the time of authoring it, that
                  other Lisp was giving (*) ➜ 1 
15:11 <abu[m]> It is very convenient. I think I have hundreds of
               cases where I rely on getting NIL when not all
               argumets are ready (yet)
15:11 <abu[m]> very common in valuen from GUI
15:11 <abu[m]> A was not aware
15:11 <abu[m]> and never cared about other Lisps
15:12 <jmarciano> (*) ➜ 1, (+) ➜ 0, (-) ➜ 0, that is in Emacs Lisp
15:12 <abu[m]> Note that PicoLisp is very different from most Lisps
               anywad
15:12 <abu[m]> What is a call like (*) useful for?

As you see, author also asked naturally why is it useful.

> So why does it return NIL?  And why do you apparently consider that
> useful?  And can something be useful even though it is incorrect?

I find it right as with error raising or nil I can find what is
wrong. I would not like forgetting some arguments and getting (*) ➜ 1
when instead I had to write something like (* a b). Even this case is
rare I find error better, or NIL, as with NIL I can't to other
mathematical operations, I will get error:

(* nil 2) will not work, and that will help me put attention on
it. Similarly (* (*) 2) would raise error putting my attention that I
forgot some arguments, then I would correct and write (* (* a b) 2).

Something is maybe "correct" in somebody's opionion but have no
practical use. And question was not what somebody considers correct,
but what is the practical use of it.

There are X mathematical subjects that are not injected in Emacs Lisp
functions just to be discovered they exist for themselves only.

Functions should serve a purpose, not only representation purpose of
some mathematica subject.

Function `*' to me should serve purpose of multiplication, not
representation of set theory or identity elements, UNLESS those
identity elements are useful somewhere.

And I asked for case where it is useful.

There is so far none case found, apart from mathematical
representation for those people who like to talk about it.

--
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: (*) -> 1
  2023-01-20 12:46                           ` Jean Louis
@ 2023-01-20 13:02                             ` Tassilo Horn
  2023-01-20 16:06                               ` Jean Louis
  0 siblings, 1 reply; 18+ messages in thread
From: Tassilo Horn @ 2023-01-20 13:02 UTC (permalink / raw)
  To: Jean Louis; +Cc: emacs-tangents

Jean Louis <bugs@gnu.support> writes:

>> Yes, and I think it's seriously wrong with
>> 
>>   : (+)
>>   -> NIL
>> 
>> where its docs say
>> 
>>   Returns the sum of all num arguments. When one of the arguments
>>   evaluates to NIL, it is returned immediately.
>
> For some reason PicoLisp is quite different than other Lisp. I have
> asked author about it.
>
> 15:09 <abu[m]> It is a "feature" that NIL propagates through
>                arithmetics

Well, but with (*) and (+), there is no single NIL involved!  And in
Elisp (+ nil), where actually a nil is involved, you get an error.

> 15:09 <jmarciano> How does it help instead of providing identity
>                   elements?
> 15:09 <abu[m]> (*) especially was not contemplated though, it is a
>                pretty useless call
> [...]
> 15:12 <abu[m]> What is a call like (*) useful for?
>
> As you see, author also asked naturally why is it useful.

So go and ask why he thinks (apply '+ ()) -> NIL is more useful than 0
given that the sum of the empty set of numbers _is_ 0.

>> So why does it return NIL?  And why do you apparently consider that
>> useful?  And can something be useful even though it is incorrect?
>
> I find it right as with error raising or nil I can find what is
> wrong.

It's good to signal an error when the expression is wrong as does Elisp
with

  (+ nil)
  (* 1 2 nil)
  (apply #'+ (list 1 nil 19))
  (+ 2 "i am not a number")

but when there is no nil or otherwise wrongly typed value involved,
there's nothing to signal.

Bye,
Tassilo



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: (*) -> 1
  2023-01-20 13:02                             ` Tassilo Horn
@ 2023-01-20 16:06                               ` Jean Louis
  2023-01-21  8:19                                 ` Tassilo Horn
  0 siblings, 1 reply; 18+ messages in thread
From: Jean Louis @ 2023-01-20 16:06 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: emacs-tangents

* Tassilo Horn <tsdh@gnu.org> [2023-01-20 16:14]:
> Jean Louis <bugs@gnu.support> writes:
> 
> >> Yes, and I think it's seriously wrong with
> >> 
> >>   : (+)
> >>   -> NIL
> >> 
> >> where its docs say
> >> 
> >>   Returns the sum of all num arguments. When one of the arguments
> >>   evaluates to NIL, it is returned immediately.
> >
> > For some reason PicoLisp is quite different than other Lisp. I have
> > asked author about it.
> >
> > 15:09 <abu[m]> It is a "feature" that NIL propagates through
> >                arithmetics
> 
> Well, but with (*) and (+), there is no single NIL involved!  And in
> Elisp (+ nil), where actually a nil is involved, you get an error.

What we can learn from PicoLisp is that there was no use for (*) ➜ 1
and that programs work, GUI applications and Android/Replicant work,
and there was no use of (*) ➜ 1 so far.

Similarly like author of PicoLisp finding use when (*) ➜ NIL, so I
would also find (very rare) use with errors. Even if NIL, I find use
as I will get error raised in combinations like (+ (*) (* 2 2)),
because (+ nil 4) would raise error.

> > 15:09 <jmarciano> How does it help instead of providing identity
> >                   elements?
> > 15:09 <abu[m]> (*) especially was not contemplated though, it is a
> >                pretty useless call
> > [...]
> > 15:12 <abu[m]> What is a call like (*) useful for?
> >
> > As you see, author also asked naturally why is it useful.
> 
> So go and ask why he thinks (apply '+ ()) -> NIL is more useful than 0
> given that the sum of the empty set of numbers _is_ 0.

I will ask.

But docstring does not speak of empty sets. You introduce "sets" where
there is not direct relation to it.

(+ &rest NUMBERS-OR-MARKERS)

Return sum of any number of arguments, which are numbers or
markers. Of course I get confused.

I ask A, but people say B. 
I ask A, but people say C.
I ask A, but people say D.

No answer about A. But there are many introductions of things not
relevant to function itself. 

I still believe that there is some actual practical use.

`apply' can be used with (apply '+ '(a b)) as why would you need in
apply for addition two arguments?

If list is with one argument, testing with `cadr' will be known,
otherwise, I use `car' instead of `apply'.

> >> So why does it return NIL?  And why do you apparently consider that
> >> useful?  And can something be useful even though it is incorrect?
> >
> > I find it right as with error raising or nil I can find what is
> > wrong.
> 
> It's good to signal an error when the expression is wrong as does Elisp
> with
> 
>   (+ nil)
>   (* 1 2 nil)
>   (apply #'+ (list 1 nil 19))
>   (+ 2 "i am not a number")

That is exactly my point, what you see useful there, I see too. Making
it less error prone with useless default identity elements hides the
real event preceding the operation.

--
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: (*) -> 1
  2023-01-20 16:06                               ` Jean Louis
@ 2023-01-21  8:19                                 ` Tassilo Horn
  2023-01-22  4:30                                   ` Emanuel Berg
  0 siblings, 1 reply; 18+ messages in thread
From: Tassilo Horn @ 2023-01-21  8:19 UTC (permalink / raw)
  To: Jean Louis; +Cc: emacs-tangents

Jean Louis <bugs@gnu.support> writes:

>> >> Yes, and I think it's seriously wrong with
>> >> 
>> >>   : (+)
>> >>   -> NIL
>> >> 
>> >> where its docs say
>> >> 
>> >>   Returns the sum of all num arguments. When one of the arguments
>> >>   evaluates to NIL, it is returned immediately.
>> >
>> > For some reason PicoLisp is quite different than other Lisp. I have
>> > asked author about it.
>> >
>> > 15:09 <abu[m]> It is a "feature" that NIL propagates through
>> >                arithmetics
>> 
>> Well, but with (*) and (+), there is no single NIL involved!  And in
>> Elisp (+ nil), where actually a nil is involved, you get an error.
>
> What we can learn from PicoLisp is that there was no use for (*) ➜ 1
> and that programs work, GUI applications and Android/Replicant work,
> and there was no use of (*) ➜ 1 so far.

You are jumping to conclusions.  If someone needed a mathematically
sound product in PicoLisp, they might have defined it as

  (de product @
    (if (not (args))
       1
       (* (next) (apply 'product (rest)))))

[Not sure if that's correct, I've just skimmed the docs.]

>> > 15:09 <jmarciano> How does it help instead of providing identity
>> >                   elements?
>> > 15:09 <abu[m]> (*) especially was not contemplated though, it is a
>> >                pretty useless call
>> > [...]
>> > 15:12 <abu[m]> What is a call like (*) useful for?
>> >
>> > As you see, author also asked naturally why is it useful.
>> 
>> So go and ask why he thinks (apply '+ ()) -> NIL is more useful than
>> 0 given that the sum of the empty set of numbers _is_ 0.
>
> I will ask.

I'm interested in the reply.  I feel it might be just an oversight which
is hard or impossible to fix now.

> But docstring does not speak of empty sets.

Yes, so the docstring is at least incomplete because it doesn't include
the completely valid case where no args are given.

> You introduce "sets" where there is not direct relation to it.

17 is an element of the set of integers, isn't it?

> (+ &rest NUMBERS-OR-MARKERS)
>
> Return sum of any number of arguments, which are numbers or
> markers. Of course I get confused.

Why?  At least when ignoring markers which happen to have an integer
representation which is an implementation detail.

> `apply' can be used with (apply '+ '(a b)) as why would you need in
> apply for addition two arguments?

You don't but you can use it if (a b) is not a literal list but a
variable, i.e., use (+ a b) or (apply #'+ my-list-of-numbers).

>> It's good to signal an error when the expression is wrong as does
>> Elisp with
>> 
>>   (+ nil)
>>   (* 1 2 nil)
>>   (apply #'+ (list 1 nil 19))
>>   (+ 2 "i am not a number")
>
> That is exactly my point, what you see useful there, I see too.

Good! :-)

> Making it less error prone with useless default identity elements
> hides the real event preceding the operation.

Let's agree to disagree then.  In my book, it is useful to have
mathematically sound behavior by default.  If you have a reason to
handle some edge-cases differently in some application (which is totally
possible!), then define your own function which does what you wish.

Bye,
Tassilo



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: (*) -> 1
  2023-01-21  8:19                                 ` Tassilo Horn
@ 2023-01-22  4:30                                   ` Emanuel Berg
  2023-01-22  6:55                                     ` Jean Louis
  2023-01-22 14:34                                     ` Akib Azmain Turja
  0 siblings, 2 replies; 18+ messages in thread
From: Emanuel Berg @ 2023-01-22  4:30 UTC (permalink / raw)
  To: emacs-tangents

Tassilo Horn wrote:

> In my book, it is useful to have mathematically sound
> behavior by default. If you have a reason to handle some
> edge-cases differently in some application (which is totally
> possible!), then define your own function which does what
> you wish.

Your book? Actually I think a lot of people have it.

-- 
underground experts united
https://dataswamp.org/~incal




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: (*) -> 1
  2023-01-22  4:30                                   ` Emanuel Berg
@ 2023-01-22  6:55                                     ` Jean Louis
  2023-01-22 10:56                                       ` Emanuel Berg
  2023-01-22 14:34                                     ` Akib Azmain Turja
  1 sibling, 1 reply; 18+ messages in thread
From: Jean Louis @ 2023-01-22  6:55 UTC (permalink / raw)
  To: emacs-tangents

* Emanuel Berg <incal@dataswamp.org> [2023-01-22 08:55]:
> Tassilo Horn wrote:
> 
> > In my book, it is useful to have mathematically sound
> > behavior by default. If you have a reason to handle some
> > edge-cases differently in some application (which is totally
> > possible!), then define your own function which does what
> > you wish.
> 
> Your book? Actually I think a lot of people have it.

Question is resolved.

I have re-defined (*) ➜ 1 to give me at least something useful:

(defun * ()
  "sex")

(*) ➜ "sex"


--
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: (*) -> 1
  2023-01-22  6:55                                     ` Jean Louis
@ 2023-01-22 10:56                                       ` Emanuel Berg
  2023-01-23  3:40                                         ` [External] : " Drew Adams
  0 siblings, 1 reply; 18+ messages in thread
From: Emanuel Berg @ 2023-01-22 10:56 UTC (permalink / raw)
  To: emacs-tangents

Jean Louis wrote:

>>> In my book, it is useful to have mathematically sound
>>> behavior by default. If you have a reason to handle some
>>> edge-cases differently in some application (which is
>>> totally possible!), then define your own function which
>>> does what you wish.
>> 
>> Your book? Actually I think a lot of people have it.
>
> Question is resolved.
>
> I have re-defined (*) → 1 to give me at least something
> useful:
>
> (defun * ()
>   "sex")
>
> (*) → "sex"

The No. 1 thing to some people ...

-- 
underground experts united
https://dataswamp.org/~incal




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: (*) -> 1
  2023-01-22  4:30                                   ` Emanuel Berg
  2023-01-22  6:55                                     ` Jean Louis
@ 2023-01-22 14:34                                     ` Akib Azmain Turja
  2023-01-23  2:23                                       ` Emanuel Berg
                                                         ` (2 more replies)
  1 sibling, 3 replies; 18+ messages in thread
From: Akib Azmain Turja @ 2023-01-22 14:34 UTC (permalink / raw)
  To: emacs-tangents

[-- Attachment #1: Type: text/plain, Size: 6158 bytes --]

Emanuel Berg <incal@dataswamp.org> writes:

> Tassilo Horn wrote:
>
>> In my book, it is useful to have mathematically sound
>> behavior by default. If you have a reason to handle some
>> edge-cases differently in some application (which is totally
>> possible!), then define your own function which does what
>> you wish.
>
> Your book? Actually I think a lot of people have it.

I just made a language named "Emacs Lisp Fuck", and here's the
"Hello, World!" program:

#+begin_src emacs-lisp
(string
 (+(*)(+)(*)(*)(*)(*)(+)(+)(+)(+)(*)(*)(*)(+)(+)(*)(*)(*)(*)(+)(*)(*)
   (*)(*)(*)(*)(*)(+)(*)(+)(*)(*)(*)(*)(+)(+)(*)(*)(+)(*)(+)(*)(*)(*)
   (*)(+)(+)(+)(*)(+)(*)(*)(+)(+)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(+)
   (*)(*)(*)(+)(+)(*)(*)(+)(+)(+)(*)(+)(+)(+)(+)(*)(*)(+)(*)(+)(*)(*)
   (+)(*)(+)(+)(*)(+)(*)(+)(*)(*)(*)(+)(*)(+)(+)(*)(+)(+)(+)(+)(+)(+)
   (*)(+)(+)(*)(*)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(+)(+)(+))
 (+(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(+)(*)(*)(*)(*)(+)(*)(*)(+)(*)
   (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(+)(*)(*)(+)(*)
   (*)(*)(+)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)
   (*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(+)(+)(*)(+)(*)(*)(+)(*)(+)(*)
   (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)
   (*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(+)(*))
 (+(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)
   (*)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)
   (*)(*)(*)(*)(*)(+)(+)(*)(+)(*)(*)(*)(+)(*)(*)(*)(*)(+)(+)(*)(*)(*)
   (*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)
   (*)(*)(+)(*)(+)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
   (*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))
 (+(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)
   (*)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)
   (*)(*)(*)(*)(*)(+)(+)(*)(+)(*)(*)(*)(+)(*)(*)(*)(*)(+)(+)(*)(*)(*)
   (*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)
   (*)(*)(+)(*)(+)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
   (*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))
 (+(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(*)
   (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
   (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)
   (*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(+)(+)(*)(*)(*)(*)(*)
   (*)(*)(+)(+)(*)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(+)(*)(+)(*)(*)
   (*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(+)(*)(*))
 (+(+)(+)(+)(+)(+)(*)(+)(+)(*)(*)(+)(+)(*)(+)(+)(+)(+)(*)(+)(+)(*)(*)
   (*)(+)(+)(+)(*)(+)(+)(*)(+)(*)(+)(*)(*)(+)(+)(*)(+)(+)(+)(*)(*)(+)
   (+)(*)(*)(*)(*)(+)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(+)(+)(*)(+)(+)(+)
   (*)(+)(*)(*)(+)(+)(+)(+)(+)(*)(+)(+)(*)(+)(+)(+)(+)(+)(*)(*)(+)(+)
   (+)(+)(*)(+)(*)(+)(+)(+)(+)(*)(*)(+)(+)(*)(+)(*)(*)(+)(+)(+)(*)(+)
   (*)(+)(+)(+)(+)(*)(*)(+)(+)(+)(+)(*)(+)(*)(+)(*)(*)(+))
 (+(+)(*)(+)(*)(+)(+)(+)(+)(+)(*)(*)(*)(+)(*)(+)(*)(+)(*)(+)(*)(+)(+)
   (+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(*)(*)(+)(+)(+)
   (*)(*)(+)(+)(+)(+)(+)(*)(+)(*)(+)(*)(*)(*)(+)(+)(+)(+)(+)(+)(+)(*)
   (+)(+)(*)(*)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)
   (+)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(*)(+)(+)(+)(+)(+)(+)(*)(*)(+)(*)
   (+)(*)(*)(*)(+)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(+)(+)(*))
 (+(*)(+)(*)(+)(+)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(+)(+)(*)(+)(+)(+)
   (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(+)(+)(+)(*)(*)(*)(*)(+)(*)(*)(*)
   (*)(*)(*)(*)(*)(*)(+)(+)(*)(+)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(+)(*)
   (+)(+)(*)(*)(*)(+)(+)(*)(*)(*)(+)(+)(+)(+)(*)(*)(*)(+)(+)(+)(+)(*)
   (*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(+)(+)(*)(+)(*)(*)(*)(+)(*)(*)
   (*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*))
 (+(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(*)
   (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
   (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)
   (*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(+)(+)(*)(*)(*)(*)(*)
   (*)(*)(+)(+)(*)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(+)(*)(+)(*)(*)
   (*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(+)(*)(*))
 (+(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)
   (*)(*)(*)(+)(+)(+)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)
   (*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(+)
   (*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
   (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
   (*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))
 (+(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)
   (*)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)
   (*)(*)(*)(*)(*)(+)(+)(*)(+)(*)(*)(*)(+)(*)(*)(*)(*)(+)(+)(*)(*)(*)
   (*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)
   (*)(*)(+)(*)(+)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
   (*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))
 (+(+)(*)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)
   (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(+)(*)(*)(*)
   (*)(*)(*)(*)(+)(*)(*)(+)(*)(*)(*)(+)(*)(*)(*)(+)(+)(*)(*)(*)(*)(*)
   (*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(+)(*)(*)(+)(*)
   (*)(*)(+)(*)(+)(*)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(*)(+)(*)
   (*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(+)(+)(*)(*)(+)(*))
 (+(+)(+)(*)(+)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(+)(+)(*)(+)(*)(*)(*)(+)
   (+)(*)(+)(+)(+)(+)(+)(*)(+)(*)(+)(*)(*)(+)(+)(+)(+)(+)(*)(+)(+)(+)
   (+)(+)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(+)(+)(*)(*)(+)(+)(*)(+)(+)(+)
   (+)(+)(+)(+)(*)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(*)(*)(+)
   (+)(*)(+)(+)(*)(+)(*)(+)(+)(*)(+)(+)(+)(*)(*)(*)(+)(+)(*)(+)(+)(+)
   (+)(*)(+)(+)(*)(*)(+)(+)(+)(+)(*)(+)(+)(*)(+)(+)(*)(+)))
#+end_src

Even I don't know how this works!

-- 
Akib Azmain Turja, GPG key: 70018CE5819F17A3BBA666AFE74F0EFA922AE7F5
Fediverse: akib@hostux.social
Codeberg: akib
emailselfdefense.fsf.org | "Nothing can be secure without encryption."

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: (*) -> 1
  2023-01-22 14:34                                     ` Akib Azmain Turja
@ 2023-01-23  2:23                                       ` Emanuel Berg
  2023-01-23  5:37                                       ` Jean Louis
  2023-01-23  5:55                                       ` Jean Louis
  2 siblings, 0 replies; 18+ messages in thread
From: Emanuel Berg @ 2023-01-23  2:23 UTC (permalink / raw)
  To: emacs-tangents

Akib Azmain Turja wrote:

>>> In my book, it is useful to have mathematically sound
>>> behavior by default. If you have a reason to handle some
>>> edge-cases differently in some application (which is
>>> totally possible!), then define your own function which
>>> does what you wish.
>>
>> Your book? Actually I think a lot of people have it.
>
> I just made a language named "Emacs Lisp Fuck", and here's
> the "Hello, World!" program:
>
> (string
>  (+(*)(+)(*)(*)(*)(*)(+)(+)(+)(+)(*)(*)(*)(+)(+)(*)(*)(*)(*)(+)(*)(*)
>    (*)(*)(*)(*)(*)(+)(*)(+)(*)(*)(*)(*)(+)(+)(*)(*)(+)(*)(+)(*)(*)(*)
>    (*)(+)(+)(+)(*)(+)(*)(*)(+)(+)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(+)
>    (*)(*)(*)(+)(+)(*)(*)(+)(+)(+)(*)(+)(+)(+)(+)(*)(*)(+)(*)(+)(*)(*)
>    (+)(*)(+)(+)(*)(+)(*)(+)(*)(*)(*)(+)(*)(+)(+)(*)(+)(+)(+)(+)(+)(+)
>    (*)(+)(+)(*)(*)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(+)(+)(+))
>  (+(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(+)(*)(*)(*)(*)(+)(*)(*)(+)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(+)(*)(*)(+)(*)
>    (*)(*)(+)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)
>    (*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(+)(+)(*)(+)(*)(*)(+)(*)(+)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)
>    (*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(+)(*))
>  (+(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)
>    (*)(*)(*)(*)(*)(+)(+)(*)(+)(*)(*)(*)(+)(*)(*)(*)(*)(+)(+)(*)(*)(*)
>    (*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(+)(*)(+)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))
>  (+(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)
>    (*)(*)(*)(*)(*)(+)(+)(*)(+)(*)(*)(*)(+)(*)(*)(*)(*)(+)(+)(*)(*)(*)
>    (*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(+)(*)(+)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))
>  (+(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)
>    (*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(+)(+)(*)(*)(*)(*)(*)
>    (*)(*)(+)(+)(*)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(+)(*)(+)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(+)(*)(*))
>  (+(+)(+)(+)(+)(+)(*)(+)(+)(*)(*)(+)(+)(*)(+)(+)(+)(+)(*)(+)(+)(*)(*)
>    (*)(+)(+)(+)(*)(+)(+)(*)(+)(*)(+)(*)(*)(+)(+)(*)(+)(+)(+)(*)(*)(+)
>    (+)(*)(*)(*)(*)(+)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(+)(+)(*)(+)(+)(+)
>    (*)(+)(*)(*)(+)(+)(+)(+)(+)(*)(+)(+)(*)(+)(+)(+)(+)(+)(*)(*)(+)(+)
>    (+)(+)(*)(+)(*)(+)(+)(+)(+)(*)(*)(+)(+)(*)(+)(*)(*)(+)(+)(+)(*)(+)
>    (*)(+)(+)(+)(+)(*)(*)(+)(+)(+)(+)(*)(+)(*)(+)(*)(*)(+))
>  (+(+)(*)(+)(*)(+)(+)(+)(+)(+)(*)(*)(*)(+)(*)(+)(*)(+)(*)(+)(*)(+)(+)
>    (+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(*)(*)(+)(+)(+)
>    (*)(*)(+)(+)(+)(+)(+)(*)(+)(*)(+)(*)(*)(*)(+)(+)(+)(+)(+)(+)(+)(*)
>    (+)(+)(*)(*)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)
>    (+)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(*)(+)(+)(+)(+)(+)(+)(*)(*)(+)(*)
>    (+)(*)(*)(*)(+)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(+)(+)(*))
>  (+(*)(+)(*)(+)(+)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(+)(+)(*)(+)(+)(+)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(+)(+)(+)(*)(*)(*)(*)(+)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(+)(+)(*)(+)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(+)(*)
>    (+)(+)(*)(*)(*)(+)(+)(*)(*)(*)(+)(+)(+)(+)(*)(*)(*)(+)(+)(+)(+)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(+)(+)(*)(+)(*)(*)(*)(+)(*)(*)
>    (*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*))
>  (+(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)
>    (*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(+)(+)(*)(*)(*)(*)(*)
>    (*)(*)(+)(+)(*)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(+)(*)(+)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(+)(*)(*))
>  (+(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(+)(+)(+)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(+)
>    (*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))
>  (+(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)
>    (*)(*)(*)(*)(*)(+)(+)(*)(+)(*)(*)(*)(+)(*)(*)(*)(*)(+)(+)(*)(*)(*)
>    (*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(+)(*)(+)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))
>  (+(+)(*)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(+)(*)(*)(*)
>    (*)(*)(*)(*)(+)(*)(*)(+)(*)(*)(*)(+)(*)(*)(*)(+)(+)(*)(*)(*)(*)(*)
>    (*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(+)(*)(*)(+)(*)
>    (*)(*)(+)(*)(+)(*)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(*)(+)(*)
>    (*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(+)(+)(*)(*)(+)(*))
>  (+(+)(+)(*)(+)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(+)(+)(*)(+)(*)(*)(*)(+)
>    (+)(*)(+)(+)(+)(+)(+)(*)(+)(*)(+)(*)(*)(+)(+)(+)(+)(+)(*)(+)(+)(+)
>    (+)(+)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(+)(+)(*)(*)(+)(+)(*)(+)(+)(+)
>    (+)(+)(+)(+)(*)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(*)(*)(+)
>    (+)(*)(+)(+)(*)(+)(*)(+)(+)(*)(+)(+)(+)(*)(*)(*)(+)(+)(*)(+)(+)(+)
>    (+)(*)(+)(+)(*)(*)(+)(+)(+)(+)(*)(+)(+)(*)(+)(+)(*)(+)))
>
> Even I don't know how this works!

Haha :)

-- 
underground experts united
https://dataswamp.org/~incal




^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [External] : Re: (*) -> 1
  2023-01-22 10:56                                       ` Emanuel Berg
@ 2023-01-23  3:40                                         ` Drew Adams
  0 siblings, 0 replies; 18+ messages in thread
From: Drew Adams @ 2023-01-23  3:40 UTC (permalink / raw)
  To: Emanuel Berg, emacs-tangents@gnu.org

> > (*) → "sex"
> The No. 1 thing to some people ...

We pretty much _all_ depend on it.

Until we start cloning people or we
develop human parthenogeny.

(There's in vitro fertilization, but
you still need two sexes there.)

Oh, sorry, didn't mean to leave out
the miracle of virgin birth.

Miracles aside, sex is pretty helpful.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: (*) -> 1
  2023-01-22 14:34                                     ` Akib Azmain Turja
  2023-01-23  2:23                                       ` Emanuel Berg
@ 2023-01-23  5:37                                       ` Jean Louis
  2023-01-23  5:55                                       ` Jean Louis
  2 siblings, 0 replies; 18+ messages in thread
From: Jean Louis @ 2023-01-23  5:37 UTC (permalink / raw)
  To: Akib Azmain Turja; +Cc: emacs-tangents

* Akib Azmain Turja <akib@disroot.org> [2023-01-22 17:37]:
> I just made a language named "Emacs Lisp Fuck", and here's the
> "Hello, World!" program:

I knew it, as I already got it (ouch) on the mailing list.

> #+begin_src emacs-lisp
> (string
>  (+(*)(+)(*)(*)(*)(*)(+)(+)(+)(+)(*)(*)(*)(+)(+)(*)(*)(*)(*)(+)(*)(*)
>    (*)(*)(*)(*)(*)(+)(*)(+)(*)(*)(*)(*)(+)(+)(*)(*)(+)(*)(+)(*)(*)(*)
>    (*)(+)(+)(+)(*)(+)(*)(*)(+)(+)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(+)
>    (*)(*)(*)(+)(+)(*)(*)(+)(+)(+)(*)(+)(+)(+)(+)(*)(*)(+)(*)(+)(*)(*)
>    (+)(*)(+)(+)(*)(+)(*)(+)(*)(*)(*)(+)(*)(+)(+)(*)(+)(+)(+)(+)(+)(+)
>    (*)(+)(+)(*)(*)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(+)(+)(+))
>  (+(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(+)(*)(*)(*)(*)(+)(*)(*)(+)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(+)(*)(*)(+)(*)
>    (*)(*)(+)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)
>    (*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(+)(+)(*)(+)(*)(*)(+)(*)(+)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)
>    (*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(+)(*))
>  (+(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)
>    (*)(*)(*)(*)(*)(+)(+)(*)(+)(*)(*)(*)(+)(*)(*)(*)(*)(+)(+)(*)(*)(*)
>    (*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(+)(*)(+)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))
>  (+(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)
>    (*)(*)(*)(*)(*)(+)(+)(*)(+)(*)(*)(*)(+)(*)(*)(*)(*)(+)(+)(*)(*)(*)
>    (*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(+)(*)(+)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))
>  (+(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)
>    (*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(+)(+)(*)(*)(*)(*)(*)
>    (*)(*)(+)(+)(*)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(+)(*)(+)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(+)(*)(*))
>  (+(+)(+)(+)(+)(+)(*)(+)(+)(*)(*)(+)(+)(*)(+)(+)(+)(+)(*)(+)(+)(*)(*)
>    (*)(+)(+)(+)(*)(+)(+)(*)(+)(*)(+)(*)(*)(+)(+)(*)(+)(+)(+)(*)(*)(+)
>    (+)(*)(*)(*)(*)(+)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(+)(+)(*)(+)(+)(+)
>    (*)(+)(*)(*)(+)(+)(+)(+)(+)(*)(+)(+)(*)(+)(+)(+)(+)(+)(*)(*)(+)(+)
>    (+)(+)(*)(+)(*)(+)(+)(+)(+)(*)(*)(+)(+)(*)(+)(*)(*)(+)(+)(+)(*)(+)
>    (*)(+)(+)(+)(+)(*)(*)(+)(+)(+)(+)(*)(+)(*)(+)(*)(*)(+))
>  (+(+)(*)(+)(*)(+)(+)(+)(+)(+)(*)(*)(*)(+)(*)(+)(*)(+)(*)(+)(*)(+)(+)
>    (+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(*)(*)(+)(+)(+)
>    (*)(*)(+)(+)(+)(+)(+)(*)(+)(*)(+)(*)(*)(*)(+)(+)(+)(+)(+)(+)(+)(*)
>    (+)(+)(*)(*)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)
>    (+)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(*)(+)(+)(+)(+)(+)(+)(*)(*)(+)(*)
>    (+)(*)(*)(*)(+)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(+)(+)(*))
>  (+(*)(+)(*)(+)(+)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(+)(+)(*)(+)(+)(+)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(+)(+)(+)(*)(*)(*)(*)(+)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(+)(+)(*)(+)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(+)(*)
>    (+)(+)(*)(*)(*)(+)(+)(*)(*)(*)(+)(+)(+)(+)(*)(*)(*)(+)(+)(+)(+)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(+)(+)(*)(+)(*)(*)(*)(+)(*)(*)
>    (*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*))
>  (+(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)
>    (*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(+)(+)(*)(*)(*)(*)(*)
>    (*)(*)(+)(+)(*)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(+)(*)(+)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(+)(*)(*))
>  (+(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(+)(+)(+)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(+)
>    (*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))
>  (+(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)
>    (*)(*)(*)(*)(*)(+)(+)(*)(+)(*)(*)(*)(+)(*)(*)(*)(*)(+)(+)(*)(*)(*)
>    (*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(+)(*)(+)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)
>    (*)(*)(*)(*)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))
>  (+(+)(*)(*)(*)(+)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)
>    (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(+)(+)(*)(*)(*)
>    (*)(*)(*)(*)(+)(*)(*)(+)(*)(*)(*)(+)(*)(*)(*)(+)(+)(*)(*)(*)(*)(*)
>    (*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(*)(+)(*)(+)(*)(*)(+)(*)
>    (*)(*)(+)(*)(+)(*)(+)(*)(*)(*)(+)(*)(*)(*)(*)(*)(*)(+)(*)(*)(+)(*)
>    (*)(*)(*)(*)(*)(+)(*)(*)(*)(+)(*)(*)(+)(+)(*)(*)(+)(*))
>  (+(+)(+)(*)(+)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(+)(+)(*)(+)(*)(*)(*)(+)
>    (+)(*)(+)(+)(+)(+)(+)(*)(+)(*)(+)(*)(*)(+)(+)(+)(+)(+)(*)(+)(+)(+)
>    (+)(+)(+)(+)(+)(+)(+)(+)(+)(*)(+)(+)(+)(+)(*)(*)(+)(+)(*)(+)(+)(+)
>    (+)(+)(+)(+)(*)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(+)(*)(*)(+)
>    (+)(*)(+)(+)(*)(+)(*)(+)(+)(*)(+)(+)(+)(*)(*)(*)(+)(+)(*)(+)(+)(+)
>    (+)(*)(+)(+)(*)(*)(+)(+)(+)(+)(*)(+)(+)(*)(+)(+)(*)(+)))
> #+end_src
> 
> Even I don't know how this works!

-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: (*) -> 1
  2023-01-22 14:34                                     ` Akib Azmain Turja
  2023-01-23  2:23                                       ` Emanuel Berg
  2023-01-23  5:37                                       ` Jean Louis
@ 2023-01-23  5:55                                       ` Jean Louis
  2023-01-24  2:33                                         ` Emanuel Berg
  2 siblings, 1 reply; 18+ messages in thread
From: Jean Louis @ 2023-01-23  5:55 UTC (permalink / raw)
  To: Akib Azmain Turja; +Cc: emacs-tangents

* Akib Azmain Turja <akib@disroot.org> [2023-01-22 17:37]:
> I just made a language named "Emacs Lisp Fuck", and here's the
> "Hello, World!" program:

It needs a package.

(defun elbf-char (n)
  (concat "(+ " (string-replace "*" "(*)" (make-string n ?*)) ")"))

(defun elbf-string (string)
  (let ((list (string-to-list string)))
    (with-temp-buffer
      (insert "(string ")
      (while list
	(insert (elbf-char (pop list))))
      (insert ")")
      (buffer-string))))

(elbf-string "Hello") ➜ (string (+ (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))(+ (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))(+ (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))(+ (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))(+ (*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*)(*))) ➜ "Hello"

  
-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: (*) -> 1
  2023-01-23  5:55                                       ` Jean Louis
@ 2023-01-24  2:33                                         ` Emanuel Berg
  0 siblings, 0 replies; 18+ messages in thread
From: Emanuel Berg @ 2023-01-24  2:33 UTC (permalink / raw)
  To: emacs-tangents

Jean Louis wrote:

> (defun elbf-char (n)
>   (concat "(+ " (string-replace "*" "(*)" (make-string n ?*)) ")"))
>
> (defun elbf-string (string)
>   (let ((list (string-to-list string)))
>     (with-temp-buffer
>       (insert "(string ")
>       (while list
> 	(insert (elbf-char (pop list))))
>       (insert ")")
>       (buffer-string))))

Not bad!

Only: Hard coding the same data several times -> court martial.

But it's not like there is real punishment or anything ...

-- 
underground experts united
https://dataswamp.org/~incal




^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2023-01-24  2:33 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <Y8Y2JgamG+C2VxFw@protected.localdomain>
     [not found] ` <87y1q1kvdm.fsf@web.de>
     [not found]   ` <Y8bM7K8T9uMHdSRw@protected.localdomain>
     [not found]     ` <87h6wpkrlq.fsf@web.de>
     [not found]       ` <Y8bjItPWgBLLdR9s@protected.localdomain>
     [not found]         ` <87zgahj7h3.fsf@web.de>
     [not found]           ` <Y8fly8k72s+iVJYF@protected.localdomain>
     [not found]             ` <878rhzvs1h.fsf@web.de>
     [not found]               ` <Y8kAkHzCnCS35D8v@protected.localdomain>
     [not found]                 ` <87ilh28w9u.fsf@web.de>
2023-01-19 14:54                   ` (*) -> 1 Jean Louis
     [not found]                   ` <Y8lZmM1EQ+wShgt2@protected.localdomain>
     [not found]                     ` <87r0vqa67k.fsf@gnu.org>
2023-01-20  7:05                       ` Jean Louis
2023-01-20  8:52                         ` Tassilo Horn
2023-01-20 12:46                           ` Jean Louis
2023-01-20 13:02                             ` Tassilo Horn
2023-01-20 16:06                               ` Jean Louis
2023-01-21  8:19                                 ` Tassilo Horn
2023-01-22  4:30                                   ` Emanuel Berg
2023-01-22  6:55                                     ` Jean Louis
2023-01-22 10:56                                       ` Emanuel Berg
2023-01-23  3:40                                         ` [External] : " Drew Adams
2023-01-22 14:34                                     ` Akib Azmain Turja
2023-01-23  2:23                                       ` Emanuel Berg
2023-01-23  5:37                                       ` Jean Louis
2023-01-23  5:55                                       ` Jean Louis
2023-01-24  2:33                                         ` Emanuel Berg
     [not found]                   ` <SJ0PR10MB5488B34F22BFC45644C9C647F3C49@SJ0PR10MB5488.namprd10.prod.outlook.com>
2023-01-20  7:33                     ` [External] : " Jean Louis
     [not found] <87bkmxkpzg.fsf@web.de>
     [not found] ` <878ri1av5j.fsf@telefonica.net>
     [not found]   ` <87ilh4kgqo.fsf@web.de>
     [not found]     ` <87zgagakh5.fsf@telefonica.net>
     [not found]       ` <87cz7cka06.fsf@web.de>
     [not found]         ` <87v8l49t8w.fsf@telefonica.net>
     [not found]           ` <Y8evxjuR1YQWW10L@tuxteam.de>
     [not found]             ` <87h6wo9fjb.fsf@telefonica.net>
     [not found]               ` <87edrsufdd.fsf@web.de>
     [not found]                 ` <878ri09bsh.fsf@telefonica.net>
2023-01-19  8:37                   ` Jean Louis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).