|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file:
-- http://angg.twu.net/LUA/RAng1.lua.html
-- http://angg.twu.net/LUA/RAng1.lua
-- (find-angg "LUA/RAng1.lua")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- Replace things in angle brackets.
--
-- (defun o () (interactive) (find-angg "LUA/UbExpr1.lua"))
-- (defun l () (interactive) (find-angg "LUA/UbExpr2.lua"))
-- (defun r () (interactive) (find-angg "LUA/RAng1.lua"))
-- (defun rf () (interactive) (find-angg "LUA/RAngFormulas1.lua"))
-- «.RAng» (to "RAng")
-- «.RAng-test1» (to "RAng-test1")
-- «.RAng-test2» (to "RAng-test2")
-- «.RAng-test3» (to "RAng-test3")
-- «.RAng-test4» (to "RAng-test4")
require "Pict2e1" -- (find-angg "LUA/Pict2e1.lua")
require "UbExpr1" -- (find-angg "LUA/UbExpr1.lua")
require "UbExpr2" -- (find-angg "LUA/UbExpr2.lua")
-- «RAng» (to ".RAng")
RAng = Class {
type = "RAng",
strtof = function (f0)
if type(f0) == "function" then return f0 end
if type(f0) == "string" then
return function (s) return Code.ve(f0)(s) end
end
error()
end,
gsub = function (str, f)
f = RAng.strtof(f)
return (str:gsub("<(.-)>", f))
end,
--
expr = function (str)
return RAng.gsub(str, "s => tostring(expr(s))")
end,
set = function (str)
local sl = Set.new()
RAng.gsub(str, function (s) sl:add(s) end)
return sl
end,
setl = function (str)
local sl = SetL.new()
RAng.gsub(str, function (s) sl:add(s) end)
return sl
end,
gaify = function (str)
return RAng.gsub(str, [[ s => '\\ga{'..s..'}' ]])
end,
sas = function (str, f)
local out = ""
for k,v in RAng.set(str):gen() do
out = out .. format(" \\sa{%s}{%s}\n", k, tostring(f(k)))
end
return out
end,
sagaify = function (str, f)
return RAng.sas(str, f) .. RAng.gaify(str)
end,
sagaifys = function (str, S_or_nil)
local f = function (s) return (S_or_nil or id)(expr(s)) end
return RAng.sas(str, f) .. RAng.gaify(str)
end,
--
new = function (src) return RAng {src=rtrim(src)} end,
__tostring = function (ra) return "RAng:\n"..ra.src end,
__index = {
topict = function (ra, S)
return PictList {
RAng.sagaifys(ra.src, S)
}
end,
},
}
-- «RAng-test1» (to ".RAng-test1")
--[==[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "RAng1.lua"
f = function (str) return "(:"..str..":)" end
= RAng.gsub("foo<a><b>bar", f)
f = function (str) print(str) end
= RAng.gsub("foo<a><b>bar", f)
f = function (str) return expr(str) end
= RAng.gsub("foo<a><1+2>bar", f)
f = function (str) return tostring(expr(str)) end
= RAng.strtof("a => 10*a")
= RAng.strtof("a => 10*a")(3)
= Code.ve("a => 10*a")
= Code.ve("a => 10*a")(3)
= RAng.gsub("foo<a><1+2>bar", f)
= RAng.gsub("foo<a><1+2>bar", " s => expr(s) ")
= RAng.gsub("foo<a><1+2>bar", "s => expr(s)")
= RAng.gsub("foo<a><1+2>bar", "s => tostring(expr(s))")
= RAng.expr("foo<a><1+2>bar")
= RAng.setl("foo<a><1+2>bar")
= RAng.setl("foo<b><a><b>bar"):ksc(" ")
= RAng.gsub("foo<b><a><b>bar", "s => '\\\\ga{'..s..'}'")
= RAng.gsub("foo<b><a><b>bar", [[ s => '\\ga{'..s..'}' ]])
= RAng.gaify("foo<b><a><b>bar")
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "RAng1.lua"
sl = RAng.set ("foo<4+5><2+3><4+5>bar")
sl = RAng.setl("foo<4+5><2+3><4+5>bar")
for k,v in sl:gen() do print(k, v) end
= RAng.sas ("foo<4+5><2+3><4+5>bar", expr)
= RAng.gaify ("foo<4+5><2+3><4+5>bar")
= RAng.sagaify("foo<4+5><2+3><4+5>bar", expr)
f = function (str) return "."..tostring(expr(str)).."." end
= RAng.sagaify("foo<4+5><2+3><4+5>bar", f)
--]==]
-- «RAng-test2» (to ".RAng-test2")
--[==[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "RAng1.lua"
dofile "UbExpr1.lua" -- (find-angg "LUA/UbExpr1.lua")
dofile "UbExpr2.lua" -- (find-angg "LUA/UbExpr2.lua")
dofile "Pict2e1.lua" -- (find-angg "LUA/Pict2e1.lua")
define_MV1()
t = "t"
defsubst("S2", [[
f(expr1) := sen(S2(expr1))
fp(expr1) := cos(S2(expr1))
g(expr1) := Mul(20, S2(expr1))
gp(expr1) := 20
x := t
]])
= MV1
= S2(MV1)
RC_src = [[ \frac{d}{d<x>} <f(g(x))> = <Mul(fp(g(x)), gp(x))> ]]
= f(g(x))
= Mul(fp(g(x)), gp(x))
= expr("Mul(fp(g(x)), gp(x))")
= S2(expr("Mul(fp(g(x)), gp(x))"))
= RAng.sagaify (RC_src, expr)
= RAng.sagaify (RC_src, function (s) return S2(expr(s)) end)
= RAng.sagaifys(RC_src)
= RAng.sagaifys(RC_src, S2)
= RAng.new(RC_src)
= RAng.new(RC_src):topict()
= RAng.new(RC_src):topict(S2)
= f(g(x))
--]==]
-- «RAng-test3» (to ".RAng-test3")
--[==[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "RAng1.lua"
define_MV1()
t = "t"
defsubst("S2", [[
f(expr1) := sen(S2(expr1))
fp(expr1) := cos(S2(expr1))
g(expr1) := Mul(20, S2(expr1))
gp(expr1) := 20
x := t
]])
RC = RAng.new [[
\frac{d}{d<x>} <f(g(x))> = <Mul(fp(g(x)), gp(x))>
]]
= RC:topict()
= RC:topict(S2)
= RC:topict(S2):sa("[RC][S2]")
--]==]
-- «RAng-test4» (to ".RAng-test4")
--[==[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "RAng1.lua"
define_MV1()
DFI = RAng.new [[
\begin{array}{lrcl}
\text{Se:} & <f(g(x))> &\eqnp{1}& <x> \\
\text{Então:} & \frac{d}{d<x>} <f(g(x))> &\eqnp{2}& \frac{d}{d<x>} <x> \\
&&\eqnp{3}& 1 \\
& \frac{d}{d<x>} <f(g(x))> &\eqnp{4}& <Mul(fp(g(x)),gp(x))> \\
& <Mul(fp(g(x)),gp(x))> &\eqnp{5}& 1 \\
& <gp(x)> &\eqnp{6}& \D \frac{1}{<fp(g(x))>} \\
\end{array}}
]]
DFIminus = RAng.new [[
\begin{array}{lrcl}
\text{Se:} & f(g(x)) &\eqnp{1}& x \\
\text{Então:} & g'(x) &\eqnp{6}& \D \frac{1}{f'(g(x))} \\
\end{array}}
]]
-- (c2m221dfip 3 "defs-DFIs")
-- (c2m221dfia "defs-DFIs")
-- (find-angg "LUA/UbExpr2.lua")
lnp = function (x) return app("\\ln'", x) end
defsubst("S1", [[
f(expr1) := exp(expr1)
fp(expr1) := exp(expr1)
g(expr1) := ln(expr1)
gp(expr1) := lnp(expr1)
]])
= DFI:topict() :sa("[DFI]")
= DFI:topict(S1):sa("[DFI][S1]")
--]==]
-- Local Variables:
-- coding: utf-8-unix
-- End: