How to resolve the algorithm Function frequency step by step in the LiveCode programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Function frequency step by step in the LiveCode programming language
Table of Contents
Problem Statement
Display - for a program or runtime environment (whatever suits the style of your language) - the top ten most frequently occurring functions (or also identifiers or tokens, if preferred). This is a static analysis: The question is not how often each function is actually executed at runtime, but how often it is used by the programmer. Besides its practical usefulness, the intent of this task is to show how to do self-inspection within the language.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Function frequency step by step in the LiveCode programming language
Source code in the livecode programming language
function handlerNames pScript
put pScript into pScriptCopy
filter pScript with regex pattern "^(on|function).*"
-- add in the built-in commands & functions
put the commandNames & the functionnames into cmdfunc
repeat for each line builtin in cmdfunc
put 0 into handlers[builtin]
end repeat
-- add user defined handlers, remove this section of you do not want your own functions included
repeat with x = 1 to the number of lines of pScript
put word 2 of line x of pScript into handlername
put 0 into handlers[handlername]
end repeat
-- count handlers used
repeat with x = 1 to the number of lines of pScriptCopy
repeat for each key k in handlers
if k is among the tokens of line x of pScriptCopy then
add 1 to handlers[k]
end if
end repeat
end repeat
combine handlers using cr and space
sort lines of handlers descending by word 2 of each
put line 1 to 10 of handlers into handlers
return handlers
end handlerNames
put handlerNames(the script of this stack & cr & the script of this card & cr & the script of me)
if 8
put 8
return 8
function 7
factorialacc 4 -- user def function for other rosetta task
factorialr 3 -- user def function for other rosetta task
handlerNames 3
factorial 2 -- user def function for other rosetta task
factorialit 2 -- user def function for other rosetta task
mouseUp 2
You may also check:How to resolve the algorithm Sorting algorithms/Patience sort step by step in the J programming language
You may also check:How to resolve the algorithm Numerical integration step by step in the Nim programming language
You may also check:How to resolve the algorithm XML/DOM serialization step by step in the Clojure programming language
You may also check:How to resolve the algorithm Count in octal step by step in the 0815 programming language
You may also check:How to resolve the algorithm Pig the dice game step by step in the SETL programming language