Cosa apparirà — Episodio #2

  • Creatore
    Topic
  • #111984
    robitex
    Amministratore del forum
      Up
      0
      Down
      ::


      Discussione dal canale Telegram
      #cosaapparira Episodio #2
      `
      % !TeX program = LuaTeX

      % Cosa apparirà – Episodio 2
      % perché il codice funziona nonostante la funzione sia
      % definita senza alcun argomento all'interno della macro \applyfn?

      % definizione della macro
      \def\applyfn#1#2{%
      \directlua{
      local args = {#2}
      local fn = function ()
      #1
      end
      tex.sprint(fn())
      }}

      $ \log(12)+10 = \applyfn{return math.log(args.x)+10}{x = 12} $

      $ 3^4 = \applyfn{return args.base^args.exp}{base = 3, exp = 4} $

      An uppercase word: \applyfn{return args.s:upper()}{s = [[Home]]}.

      A more elaborated example:
      $ |-1| = \applyfn{
      if args.x < 0 then return -args.x else return args.x end }{x = -1}$ Last but not least... $ 16! = \applyfn{ local fact = 1 for i = 1, args.n do fact = fact * i end return fact }{n = 16}$ \bye ` La domanda: Perché il codice funziona nonostante la funzione sia definita senza alcun argomento all'interno della macro \applyfn? Bye!

    • Devi essere connesso per rispondere a questo topic.

    Go to top