Search found 91 matches

by [Shambles]
07 Sep 2019, 16:53
Forum: Tips and Tricks
Topic: Using Static Evaluation for Optimization
Replies: 0
Views: 2691

Using Static Evaluation for Optimization

As far as I know, this technique is not widely known. I apologize if I am mistaken. It is helpful to be able to evaluate code before run-time. This is normally achieved with internal (e.g. Lisp-like macro) or external code generation. In AutoHotkey, you can achieve something similar by assigning to ...
by [Shambles]
13 Aug 2019, 17:39
Forum: Scripts and Functions
Topic: Facade Functional Programming Suite
Replies: 68
Views: 13394

Re: Facade Functional Programming Suite

String_NatSorted(Args*) became String_IsNatSorted(Args*) so that it is consistent with other predicates that are not operators. Dict_Merge, Dict_Union, Dict_Intersection, Dict_Difference, and Dict_IsDisjoint became variadic to reduce verbosity. I improved the error reporting for Math_Log(X) and Mat...
by [Shambles]
27 Jul 2019, 15:23
Forum: Scripts and Functions
Topic: Facade Functional Programming Suite
Replies: 68
Views: 13394

Re: Facade Functional Programming Suite

Thank you for your comprehensive reply. I admit, I'm in the camp of those who are all about the execution efficiency... Yet, I see the value of your library, because ahk does too many things "abnormally", as you previously explained. I just hope v2 will improve things. In 1996, with the introductio...
by [Shambles]
26 Jul 2019, 18:09
Forum: Scripts and Functions
Topic: Facade Functional Programming Suite
Replies: 68
Views: 13394

Re: Facade Functional Programming Suite

Before I try to actually wrap my head around this library... I have a question. Would it help with increased performance when working with very large arrays? I find that AHK is much faster at creating an array, lets say, of 750 thousand entries than, later, retrieving those entries. An array of thi...
by [Shambles]
26 Jul 2019, 13:57
Forum: Scripts and Functions
Topic: Facade Functional Programming Suite
Replies: 68
Views: 13394

Re: Facade Functional Programming Suite

The bitwise functions had their "Bit" prefix changed to just "B". This is more popular according to Google. It seems to have been popularized by LuaJIT. The not, and, or, if, and while combinators gained a "C" prefix. This stands for combinator and is consistent with the naming of the bitwise functi...
by [Shambles]
21 Jul 2019, 11:18
Forum: Scripts and Functions
Topic: Facade Functional Programming Suite
Replies: 68
Views: 13394

Re: Facade Functional Programming Suite

I updated Facade’s Op library today. It is one of the oldest libraries and had not received much attention for a long time. It became more Lisp-like and less like Python’s operator library, both of which have been inspirations. Op_Pow was renamed Op_Expt. Op_Neg was removed. Use Op_Sub with 1 argume...
by [Shambles]
04 Jul 2019, 01:17
Forum: Scripts and Functions
Topic: Facade Functional Programming Suite
Replies: 68
Views: 13394

Re: Facade Functional Programming Suite

While working on the design document, I noticed several places where Facade was not as consistent as it could be and its names were not as good as they could be. Making yourself aware of your poor design decisions is one of the reasons for maintaining a design document. I renamed the IsNull function...
by [Shambles]
29 Jun 2019, 04:24
Forum: Scripts and Functions
Topic: Facade Functional Programming Suite
Replies: 68
Views: 13394

Re: Facade Functional Programming Suite

These libraries have been updated again: Type Checking Facade Several bugs were fixed. Some were various problems with inf and nan values. Others were not ensuring types are the same (not just collection contents) before considering values equal or ordered. Op_Bin(X) is now about 10x faster, not tha...
by [Shambles]
22 Jun 2019, 16:05
Forum: Bug Reports
Topic: AutoHotkey v2 Type System Inconsistency
Replies: 0
Views: 859

AutoHotkey v2 Type System Inconsistency

Demonstration Code ; This works in current v2. Inf := -Log(0) NaN := Inf - Inf MsgBox(Type(Inf)) ; => "Float" MsgBox(Inf is "Float") ; => 0 MsgBox(Type(NaN)) ; => "Float" MsgBox(NaN is "Float") ; => 0 (-)Inf and NaN cannot be fully avoided by trying to prevent AutoHotkey from generating them because...
by [Shambles]
13 Jun 2019, 06:26
Forum: Scripts and Functions
Topic: Facade Functional Programming Suite
Replies: 68
Views: 13394

Re: Facade Functional Programming Suite

I believe I have finished an update to several of my libraries: Type Checking Facade HashTable Everything should be up to date except for Facade’s design document. It has not been updated for some time. I have been putting that off because the design kept changing. This should not interfere with any...
by [Shambles]
03 Jan 2019, 16:52
Forum: Bug Reports
Topic: BoundFuncs Execute When Call Property Is Read
Replies: 15
Views: 3720

Re: BoundFuncs Execute When Call Property Is Read

What I was refering to was specifically this piece of code in the documentation: enum := obj._NewEnum() While enum[k, v] Another example is the match Object: https://www.autohotkey.com/docs/commands/RegExMatch.htm#MatchObject Brackets [] may be used in place of parentheses () if N is specified. Reg...
by [Shambles]
03 Jan 2019, 11:57
Forum: Bug Reports
Topic: BoundFuncs Execute When Call Property Is Read
Replies: 15
Views: 3720

Re: BoundFuncs Execute When Call Property Is Read

https://www.autohotkey.com/docs/objects/Enumerator.htm#Example https://www.autohotkey.com/docs/objects/File.htm#Seek Are the cases I still remember. A while back I spend a lot of time trying to make call the only possible usage in this case. At one point however I lost the overview and motivation. ...
by [Shambles]
03 Jan 2019, 10:34
Forum: Bug Reports
Topic: BoundFuncs Execute When Call Property Is Read
Replies: 15
Views: 3720

Re: BoundFuncs Execute When Call Property Is Read

I wouldnt say its inconsistent - there are a few other places where Get or Set can be used on Object Methods within AHKs build in Objects. I'm sure that there is some documentation on this regarding compatability with vba or some other language. Its a historical thing - so Im not convinced we can c...
by [Shambles]
03 Jan 2019, 10:15
Forum: Bug Reports
Topic: BoundFuncs Execute When Call Property Is Read
Replies: 15
Views: 3720

Re: BoundFuncs Execute When Call Property Is Read

I am quite certain that there is an explanation in both v1's and v2's implementation for this behavior. That does not mean the behavior as implemented is as it should be. Source code is not a holy text that must be unquestioningly obeyed and never changed. [Shambles] , obviously the source code is ...
by [Shambles]
03 Jan 2019, 07:14
Forum: Bug Reports
Topic: BoundFuncs Execute When Call Property Is Read
Replies: 15
Views: 3720

Re: BoundFuncs Execute When Call Property Is Read

reading the Call property on a user-defined type that does or does not have one does not cause anything to execute it executes get if implemented. Looking at the (v2) implementation, I see that BoundFunc handles invoking call the same way regardless if it is set , get or call , so you can even do b...
by [Shambles]
02 Jan 2019, 17:16
Forum: Bug Reports
Topic: BoundFuncs Execute When Call Property Is Read
Replies: 15
Views: 3720

Re: BoundFuncs Execute When Call Property Is Read

I fail to see how this is a bug - after all the documentation does not state that this doesn't happen - or what happens if you get the call element in a boundfunc. I agree with you though that this is a good suggestion. But I still don't see how it will help you identifying boundfuncs. My justifica...
by [Shambles]
02 Jan 2019, 03:19
Forum: Bug Reports
Topic: BoundFuncs Execute When Call Property Is Read
Replies: 15
Views: 3720

Re: BoundFuncs Execute When Call Property Is Read

This is annoying me too. I don't know how to Identify a Bound Function Object. I can't use IsFunc(Bound) and I can't use Bound.HasKey("Call") either. And like said above (Bound.Call) executes the function... I discovered this problem while writing a library to do exactly what you are trying to do. ...
by [Shambles]
27 Dec 2018, 05:49
Forum: Scripts and Functions
Topic: Facade Functional Programming Suite
Replies: 68
Views: 13394

Re: Facade Functional Programming Suite

I have updated the Type Checking and Facade libraries. The only breaking changes are in Facade: Func_Reparam(Func, Positions) was renamed Func_Rearg(Func, Positions) Func_Fork(G, F, H) had its parameters rearranged to Func_Fork(F, G, H) Func_Rearg(Func, Positions) makes more sense in the presence of...
by [Shambles]
19 Dec 2018, 21:29
Forum: Scripts and Functions
Topic: Facade Functional Programming Suite
Replies: 68
Views: 13394

Re: Facade Functional Programming Suite

I have just finished the error handling rewrite. Facade functions now validate their arguments and report errors that can only be detected 'deeper in'. Facade's exceptions reveal the type of error the function it occurred in which argument was at fault, if applicable the precise nature of the error ...
by [Shambles]
16 Dec 2018, 03:36
Forum: Bug Reports
Topic: BoundFuncs Execute When Call Property Is Read
Replies: 15
Views: 3720

BoundFuncs Execute When Call Property Is Read

Demonstration Code Foo(X) { MsgBox % "This should not execute." } Func("Foo").Bind("").Call This problem occurs in version 1.1.30.01. It only occurs with BoundFuncs, not Funcs or user-defined function objects. It only occurs with the (non-existent) Call property, not other property names. I had cau...

Go to advanced search