Sign in to follow this  
Followers 0
Morthawt

It's been a while, trying to revisit functions as first class objects. I have a question.

4 posts in this topic

I thought that it might be useful to dynamically rebind a variable to a function so the same call to a function could be set to actually use a different function which requires the same parameters. But I recall seeing somewhere on the forum about it's use in HotKeySet but I do not recall what the benefit was of using a variable for a function in the hotkey vs using the name in a string. Could you clarify that and I would like to know other good uses/shortcuts that this $function ability provides.

Thanks.

Share this post


Link to post
Share on other sites



what the benefit was of using a variable for a function in the hotkey vs using the name in a string.

Trying to give you an answer here since some time has passed. I can't think of any benefit to the above. There might be a slight speed gain but that's really some AutoIt implementation detail and you shouldn't have to worry about it. If you do, the behavior will undoubtedly change.

That said, do you need any examples of how to use first-class functions in context?

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

I would appreciate it. Currently I use it rarely as a speed thing for example during writing debugging code but that's about it. I would like to make the most of it, if there are other cases where it could be useful/beneficial.

Global $debug = 1, $d = Debug, $debugpathmodifier = ''
If StringMid(@ScriptDir, StringLen(@ScriptDir), 1) <> '\' Then $debugpathmodifier = '\'
If $debug Then FileDelete(@ScriptDir & $debugpathmodifier & 'IDCdebug.txt')

$d('Testing 123')

Func Debug($_input)
    Local Static $_LogEntry
    If $debug Then
        FileWriteLine(@ScriptDir & $debugpathmodifier & 'IDCdebug.txt', $_input)
        ConsoleWrite($_input & @CRLF)
    EndIf
EndFunc   ;==>Debug
Edited by Morthawt

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

An example >> . Also check out the AutoIt beta as the Array UDF is using something similar for Min and Max.

Edited by guinness

_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0