Ilya Zakharevich on Thu, 30 May 2024 01:14:13 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Using builtin PARI operators in gp |
On Sun, May 12, 2024 at 09:56:46AM +0200, Karim Belabas wrote: > * Ilya Zakharevich [2024-05-12 05:06]: > > Up to some extent, one can “reach” the builtin PARI operators in gp: > There is one already: > > ? alias(plus, "_+_") > ? fold(plus, [1,2,3]) Oups, I did not even realize that fold() is already implemented! 😆 I do not know: should not fold("_+_", [1,2,3]) “just work”? (Likewise for other uses of anonymous functions?) > %2 = 6 > > It's even (sort of) documented: Hmm: Alias expansion is performed directly by the internal GP compiler. Note that since alias is performed at compilation-time, it … I think this is not very comprehensible. Probably, it means something like: When the internal compiler of PARI compiles an anonymous subroutine (or other code) and encounters a use of “an aliased symbol”, an alias expansion happens immediately. Hence there is no run time penalty. Additionally, I have no clue what alias() is actually doing. For example, is alias(SIN, sin) a “glorified version” of SIN = sin, or of SIN = builtin::sin? What about alias(SIN, "sin") ? Or: is Sin = sin; alias(SIN, Sin) (ALWAYS) the same as alias(SIN, sin) ? Thanks, Ilya