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