From: "G.B." <bauhaus@notmyhomepage.invalid>
Subject: Re: A function that cannot be called?
Date: Tue, 23 Oct 2018 19:49:22 +0200
Date: 2018-10-23T19:49:22+02:00 [thread overview]
Message-ID: <pqnmv3$f12$1@dont-email.me> (raw)
In-Reply-To: <pqncs9$4g7$1@gioia.aioe.org>
On 23.10.18 16:57, Dmitry A. Kazakov wrote:
> On 2018-10-23 16:35, Jere wrote:
>
>> The difficulty with compile time comes from your requirements I think.
>> In order for the function to exist, the compiler needs to have it
>> actually be callable.
>
> In which sense a non-callable function may exist? What exactly is the meaning of "callable"?
The function is supposed to exist just like the empty function
in {} -> {} in mathematics, I think.
"Callable" is probably meaningful in contexts involving types,
such as argument type pattern matching in functionist
languages. Can't say if lazyness is needed in addition.
Maybe "used" is a better word than "called".
functions in Ada that take no argument but that still return
something seem weird in a different way. If one restricts one's
views to the "D -> E" pattern as the only respectalbe way of
describing a function, then what is the proper signature of
"function of no argument, but returning T" ?
(Which is nice in that it allows naming expressions:
function Pi return Float is (355.0 / 113.0); )
There might be another good bit in Ada in this regard, namely
pure functions, to be got from a pragma, thus
package Nope is
pragma Pure (Nope);
function Source return Integer;
end Nope;
I can't say whether this particular one approximates Haskell's
absurd :: Void -> a
but providing an Ada body for function Source from the pure
package above and one that is actually impure is a little tricky.
next prev parent reply other threads:[~2018-10-23 17:49 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-18 12:14 A function that cannot be called? G.B.
2018-10-18 15:33 ` Stefan.Lucks
2018-10-18 20:21 ` G.B.
2018-10-18 20:57 ` Niklas Holsti
2018-10-19 7:15 ` Dmitry A. Kazakov
2018-10-19 13:55 ` G.B.
2018-10-19 15:31 ` Dmitry A. Kazakov
2018-10-18 17:03 ` AdaMagica
2018-10-18 19:36 ` G.B.
2018-10-18 21:30 ` Randy Brukardt
2018-10-19 14:00 ` G.B.
2018-10-19 15:39 ` Dmitry A. Kazakov
2018-10-20 1:34 ` Randy Brukardt
2018-10-20 9:14 ` G.B.
2018-10-20 11:13 ` Simon Wright
2018-10-20 14:11 ` Dmitry A. Kazakov
2018-10-21 9:25 ` G.B.
2018-10-21 9:07 ` G.B.
2018-10-21 9:51 ` Dmitry A. Kazakov
2018-10-21 10:57 ` Niklas Holsti
2018-10-21 18:00 ` Simon Wright
2018-10-19 8:48 ` AdaMagica
2018-10-19 11:15 ` G.B.
2018-10-19 17:06 ` AdaMagica
2018-10-19 19:57 ` G.B.
2018-10-19 22:06 ` Jere
2018-10-21 10:14 ` G.B.
2018-10-21 11:30 ` Egil H H
2018-10-23 11:45 ` G.B.
2018-10-23 14:35 ` Jere
2018-10-23 14:57 ` Dmitry A. Kazakov
2018-10-23 17:49 ` G.B. [this message]
2018-10-23 19:25 ` Dmitry A. Kazakov
2018-10-24 7:35 ` G.B.
2018-10-24 8:14 ` Dmitry A. Kazakov
2018-10-19 18:19 ` marciant
2018-10-19 18:22 ` marciant
2018-10-20 1:36 ` Randy Brukardt
2018-10-20 2:54 ` marciant
2018-10-19 20:25 ` Shark8
2018-10-19 23:28 ` marciant
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox