Jump to content

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


Morthawt
 Share

Recommended Posts

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.

Link to comment
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?

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

Edited by guinness

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_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: 22/04/2018

Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...