Moduł:Parametry

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania
Template-info.png Dokumentacja modułu [stwórz] [odśwież]
local p={};
p["LiczbaElementówNumerowanychTablicy"]=function(tabela, wliczac)
  local liczba_elementow_ponumerowanych_w_tablicy=0;
  local parametry_modul=require("Module:Parametry");
  local czy_puste_wliczac=parametry_modul.CzyTak(wliczac);
  for _1,_2 in ipairs(tabela)do
  	if((not czy_puste_wliczac)or((czy_puste_wliczac)and(parametry_modul.CzyTak(_2))))then
		liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
	end;
  end;
  return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówNumerowanychSzablonu"]=function(frame)
   local parametry_modul=require("Module:Parametry");
   return parametry_modul["LiczbaElementówNumerowanychTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;

p["LiczbaParametrówNienazwanychSzablonu"] = function (frame)
	return p["LiczbaElementówNienazwanychTablicy"](frame:getParent().args,frame.args["niepuste"])
end;
p["LiczbaElementówNienazwanychTablicy"] = function(tabela,wliczac)
  local parametry_modul=require("Module:Parametry");
  local czy_puste_wliczac=parametry_modul.CzyTak(wliczac);
  local liczba_elementow_ponumerowanych_w_tablicy=0;
  for _1,_2 in pairs(tabela)do
  		if(type(_1)=="number")then
  			if((not czy_puste_wliczac)or((czy_puste_wliczac)and(parametry_modul.CzyTak(_2))))then
				liczba_elementow_ponumerowanych_w_tablicy=liczba_elementow_ponumerowanych_w_tablicy+1;
			end;
		end;
  end;
  return liczba_elementow_ponumerowanych_w_tablicy;
end;
p["LiczbaElementówTablicy"]=function(tabela,wliczac)
  local parametry_modul=require("Module:Parametry");
  local czy_puste_wliczac=parametry_modul.CzyTak(wliczac);
  local liczba_elementow_w_tablicy=0;
  for _1,_2 in pairs(tabela)do
  	  if((not czy_puste_wliczac)or((czy_puste_wliczac)and(parametry_modul.CzyTak(_2))))then
			liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
	  end;
  end;
  return liczba_elementow_w_tablicy;
end;
p["LiczbaElementówNumerowanychZPrzedrostkiemLubNieTablicy"]=function(tabela,przedrostek,wliczac)
	local parametry_modul=require("Module:Parametry");
	local czy_puste_wliczac=parametry_modul.CzyTak(wliczac);
    local liczba_elementow_w_tablicy=0;
	for _1,_2 in pairs(tabela)do
	  local zmienna=przedrostek.._1 ;
	  local element=tabela[zmienna] or tabela[_1];
	  if(element)then
  		  if((not czy_puste_wliczac)or((czy_puste_wliczac)and(element~="")))then
	  			liczba_elementow_w_tablicy=liczba_elementow_w_tablicy+1;
	  	  end;
	  end;
	end;
	return liczba_elementow_w_tablicy;
end;
function p.MaksymalnaLiczbaParametruNienazwanegoSzablonu(frame)
	return p.MaksymalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MaksymalnaLiczbaParametruNienazwanegoTablicy(tabela, wliczac)
  local parametry_modul=require("Module:Parametry");
  local czy_puste_wliczac=parametry_modul.CzyTak(wliczac);
  local liczba_elementow_ponumerowanych_w_tablicy=0;
  for _1,_2 in pairs(tabela)do
  		if(type(_1)=="number")then
  			if((not czy_puste_wliczac)or((czy_puste_wliczac)and(parametry_modul.CzyTak(_2))))then
				liczba_elementow_ponumerowanych_w_tablicy=math.max(liczba_elementow_ponumerowanych_w_tablicy,_1);
			end;
		end;
  end;
  return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 0;
end;
function p.MinimalnaLiczbaParametruNienazwanegoSzablonu(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Parametry/Wywołanie funkcji/MinimalnaLiczbaParametruNienazwanegoSzablonu").id	
	return p.MinimalnaLiczbaParametruNienazwanegoTablicy(frame:getParent().args,frame.args["niepuste"]);
end;
function p.MinimalnaLiczbaParametruNienazwanegoTablicy(tabela,wliczac)
  local parametry_modul=require("Module:Parametry");
  local czy_puste_wliczac=parametry_modul.CzyTak(wliczac);
  local liczba_elementow_ponumerowanych_w_tablicy;
  for _1,_2 in pairs(tabela)do
  		if(type(_1)=="number")then
  			if((not czy_puste_wliczac)or((czy_puste_wliczac)and(parametry_modul.CzyTak(_2))))then
  				if(not liczba_elementow_ponumerowanych_w_tablicy)then liczba_elementow_ponumerowanych_w_tablicy=_1;end;
				liczba_elementow_ponumerowanych_w_tablicy=math.min(liczba_elementow_ponumerowanych_w_tablicy,_1);
			end;
		end;
  end;
  return (liczba_elementow_ponumerowanych_w_tablicy)and liczba_elementow_ponumerowanych_w_tablicy or 1;
end;
function p.MinimalnyIMaksymalnyNumerParametru(tabela,nazwa_parametru_okreslona)
	local liczba_maksimum=0;
	local liczba_minimum;
	for nazwa_parametru,wartosc_parametru in pairs(tabela)do
		local liczba_z_parametru=mw.ustring.match(nazwa_parametru,"^"..nazwa_parametru_okreslona.."%s(%d+)$")
		if(liczba_z_parametru)then 
			local liczba=tonumber(liczba_z_parametru) or 0;
			liczba_maksimum=math.max(liczba_maksimum,liczba);
			if(not liczba_minimum)then 
				 liczba_minimum=(liczba>0)and liczba or 1;
		    else 
		    	liczba_minimum=math.min(liczba_minimum,(liczba>0)and liczba or 1);
			end;	
		elseif(nazwa_parametru_okreslona==nazwa_parametru)then
			liczba_maksimum=math.max(liczba_maksimum,1);
			if(not liczba_minimum)then 
				 liczba_minimum=1;
		    else 
		    	liczba_minimum=math.min(liczba_minimum,1);
			end;
		end;
	end;
	if(not liczba_minimum)then liczba_minimum=1;end;
	return liczba_minimum,liczba_maksimum;
end;
p["CzySąParametryNumerowaneSzablonu"] = function(frame)
	local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNumerowaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
	if(czy_sa_elementy_tablicy)then return "tak";end;
	return;
end;
p["CzySąElementyNumerowaneTablicy"]=function(tabela,wliczac)
  local parametry_modul=require("Module:Parametry");
  local czy_puste_wliczac=parametry_modul.CzyTak(wliczac);
  for _1,_2 in ipairs(tabela)do
  	if((not czy_puste_wliczac)or((czy_puste_wliczac)and(parametry_modul.CzyTak(_2))))then
		return true;
	end;
  end;
  return false;
end;
p["CzySąParametryNienazwaneSzablonu"] = function(frame)
	local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNienazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
	if(czy_sa_elementy_tablicy)then return "tak";end;
	return;
end;
p["CzySąElementyNienazwaneTablicy"]=function(tabela,wliczac)
  local parametry_modul=require("Module:Parametry");
  local czy_puste_wliczac=parametry_modul.CzyTak(wliczac);
  for _1,_2 in pairs(tabela)do
  	if(type(_1)=="number")then
  		if((not czy_puste_wliczac)or((czy_puste_wliczac)and(parametry_modul.CzyTak(_2))))then
			return true;
		end;
	end;
  end;
  return false;
end;
p["CzySąParametryNazwaneSzablonu"] = function(frame)
	local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyNazwaneTablicy"](frame:getParent().args,frame.args["niepuste"]);
	if(czy_sa_elementy_tablicy)then return "tak";end;
	return;
end;
p["CzySąElementyNazwaneTablicy"]=function(tabela,wliczac)
  local parametry_modul=require("Module:Parametry");
  local czy_puste_wliczac=parametry_modul.CzyTak(wliczac);
  for _1,_2 in pairs(tabela)do
  	if(type(_1)~="number")then
  		if((not czy_puste_wliczac)or((czy_puste_wliczac)and(parametry_modul.CzyTak(_2))))then
			return true;
		end;
	end;
  end;
  return false;
end;
p["CzySąParametrySzablonu"] = function(frame)
	local czy_sa_elementy_tablicy=require("Module:Parametry")["CzySąElementyTablicy"](frame:getParent().args,frame.args["niepuste"]);
	if(czy_sa_elementy_tablicy)then return "tak";end;
	return;
end;
p["CzySąElementyTablicy"]=function(tabela,wliczac)
  local parametry_modul=require("Module:Parametry");
  local czy_puste_wliczac=parametry_modul.CzyTak(wliczac);
  for _1,_2 in pairs(tabela)do
  	  if((not czy_puste_wliczac)or((czy_puste_wliczac)and(parametry_modul.CzyTak(_2))))then
			return true;
	  end;
  end;
  return false;
end;
p["CzyCoNajwyżejJedenNumerowanyParametrSzablonu"] = function (frame)
	local parametry_modul=require("Module:Parametry");
	return parametry_modul["CzyCoNajwyżejJedenNumerowanyElementTablicy"](frame:getParent().args,frame.args["niepuste"]);
end;
p["CzyCoNajwyżejJedenNumerowanyElementTablicy"] = function (args,wliczac)
	local parametry_modul=require("Module:Parametry");
	local czy_puste_wliczac=parametry_modul.CzyTak(wliczac);
	local i=1;
	local czy=false;
	for _1,_2 in pairs(args)do
		if(type(_1)=="number")then
			if((not czy_puste_wliczac)or((czy_puste_wliczac)and(parametry_modul.CzyTak(_2))))then
				if(_1==1)then czy=true;end;
				if(i>1)then
					return "";
				else
	    			i=i+1;
	    		end;
			end;
	 	end;
	end;
	if((czy)or(i==1))then return "tak";else return;end;
end;
p["KopiujTabelęŁańcuchów"]=function(args)
	local args2={};
	for name,value in pairs(args.tabela)do
		if(args.wzor and args.podstawienie)then value=mw.ustring.gsub(value,args.wzor,args.podstawienie);end;
		if(args.wzor2)then value=mw.ustring.match(value,args.wzor2);end;
		args2[name]=((args.przedrostek)and args.przedrostek or '')..value..((args.przyrostek)and args.przyrostek or '');
	end;
	return args2;
end;
p["KopiujTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
	local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
	local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
	local tabelka2={};
	for name,value in pairs(tabelka)do
		if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
			tabelka2[name]=value;
		end;
	end;
	return tabelka2;
end;
p["KopiujTabelęElementówBezTablicyKluczy"]=function(tabelka,tabelka2,wliczac_1,wliczac_2)
	local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
	local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
	local tabelka3={};
	for name,value in pairs(tabelka)do
		if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
			local czy=p.CzyJestTakiKluczTabeli(tabelka2,name);
			if(not czy)then
				tabelka3[name]=value;
			end;
		end;
	end;
	return tabelka3;
end;
p["KopiujRekurencyjnieTabelęElementów"]=function(tabelka,wliczac_1,wliczac_2)
	local czy_puste_wliczac_1=p.CzyTak(wliczac_1);
	local czy_puste_wliczac_2=p.CzyTak(wliczac_2);
	local function kopiuj(tabelka)
		local tabelka2={};
		for name,value in pairs(tabelka)do
			if(((not czy_puste_wliczac_1)or((czy_puste_wliczac_1)and(p.CzyTak(name))))and((not czy_puste_wliczac_2)or((czy_puste_wliczac_2)and(p.CzyTak(value)))))then
				if(type(value)=="table")then
					tabelka2[name]=kopiuj(value);
				else
					tabelka2[name]=value;
				end;
			end;
		end;
		return tabelka2;
	end;
	return kopiuj(tabelka);
end;
p["NazwanyLiczbą"] = function(frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Parametry/Wywołanie funkcji/NazwanyLiczbą").id
	local pf=frame:getParent()
	local numer_parametru=frame.args[1]
	if(numer_parametru)then
		numer_parametru=tonumber(numer_parametru);
		if(numer_parametru and pf.args[numer_parametru])then
			return "tak"
		end
	end;
	return;
end
p["NazwanyCiągiem"] = function (frame)
	mw.logObject(frame:getParent():getTitle(), "parent:title")
	_ = mw.title.new("Module:Parametry/Wywołanie funkcji/NazwanyCiągiem").id
	local pf=frame:getParent()
	local klucz_parametru=frame.args[1]
	if(klucz_parametru)then
		local klucz_parametru_do_liczby=tonumber(klucz_parametru);
		if((not klucz_parametru_do_liczby)and(pf.args[klucz_parametru]))then
			return "tak"
		end
	end;
	return;
end;
function p.Nazwane(frame)
    local pf = frame:getParent()
    for _, nazwa_parametru in ipairs(frame.args)do
    	local wartosc_parametru_nazwanego=pf.args[mw.text.trim(nazwa_parametru)]
    	if(wartosc_parametru_nazwanego)then return "tak" end 
    end
    return;
end
function p.Nienazwane(frame)
    local pf = frame:getParent()
    for _, wartosc_parametru in ipairs(frame.args)do
    	wartosc_parametru=mw.text.trim(wartosc_parametru)
    	for name, wartosc_parametru2 in pairs(pf.args) do
    	   if(type(name)=="number")then
    			if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then	 	
    	    		return "tak"
    			end
    		end;
        end
    end
    return;
end
function p.Numerowane(frame)
    local pf = frame:getParent()
    for _, wartosc_parametru in ipairs(frame.args)do
    	wartosc_parametru=mw.text.trim(wartosc_parametru)
    	for _, wartosc_parametru2 in ipairs(pf.args) do
    	   if(mw.text.trim(wartosc_parametru2)==wartosc_parametru)then	 	
    	       return "tak"
    	   end
        end
    end
    return;
end
p["Odstępy"] = function(frame)
	local parametry_modul=require("Module:Parametry");
	local nazwa;local czy;
	if(type(frame)=="table")then
		local args=frame and ((frame.getParent and(parametry_modul.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame).args or frame) or {};
		nazwa=args[1];
	    czy=args["wewnątrz"] or args[2];
	else
		nazwa=frame;
	end;
	
	if(not p.CzyTak(nazwa))then return nazwa;end;
	nazwa=mw.ustring.gsub(nazwa,"^[%s_]+","");
	nazwa=mw.ustring.gsub(nazwa,"[%s_]+$","")
	if(p.CzyTak(czy))then
		nazwa,_=mw.ustring.gsub(nazwa,"[%s_]+"," ");
	end;
	return nazwa;
end;
function p.DodajElementDoZbioru(tabela,wartosc)
	if(wartosc==nil)then return; end;
	if(type(tabela)~="table")then return;end;
  	for _,element_tabeli in pairs(tabela)do
  		if(element_tabeli==wartosc)then
  			return false;
  		end;
  	end;
  	table.insert(tabela,wartosc);
  	return true;
end;
function p.CzyJestTakiElementNumerowanyTabeli(tabela,wartosc)
	if(wartosc==nil)then return;end;
	if(type(tabela)~="table")then return;end;
	for _, element_tabeli in ipairs(tabela)do
		if(element_tabeli==wartosc)then
			return true;
		end;
	end;
	return false;
end;
function p.CzyJestTakiElementNienazwanyTabeli(tabela,wartosc)
	if(wartosc==nil)then return;end;
	if(type(tabela)~="table")then return;end;
	for name,value in pairs(tabela)do
		if(type(name)=="number")then
			if(value==wartosc)then
				return true;
			end;
		end;
	end;
	return false;
end;
function p.CzyJestTakiKluczTabeli(tabela,klucz)
	if(klucz==nil)then return;end;
	if(type(tabela)~="table")then return;end;
	local wartosc=tabela[klucz];
	if(wartosc~=nil)then return true;end;
	return false;
end;
function p.CzyJestTakiElementTabeli(tabela,klucz,wartosc)
	if((klucz==nil)or(wartosc==nil))then return;end;
	if(type(tabela)~="table")then return;end;
	for __klucz, __wartosc in pairs(tabela)do
		if((__klucz==klucz)and(__wartosc==wartosc))then
			return true;
		end;
	end;
	return false;
end;
p["ŁączDwieTabele"] = function (tabelka1,tabelka2)
   local parametry_modul=require("Module:Parametry");
   return (tabelka2 and parametry_modul["CzySąElementyTablicy"](tabelka2))and ((tabelka1 and parametry_modul["CzySąElementyTablicy"](tabelka1))and parametry_modul["ŁączNumerowaneTabele"]{[1]=tabelka1,[2]=tabelka2,} or tabelka2) or tabelka1;
end;
p["ŁączZbioryElementówNumerowanychDwóchTabel"]=function(tabelka1,tabelka2)
    local parametry_modul=require("Module:Parametry");
	return (tabelka1 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNumerowaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNumerowanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNienazwanychDwóchTabel"]=function(tabelka1,tabelka2)
    local parametry_modul=require("Module:Parametry");
	return (tabelka1 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNienazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNienazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryElementówNazwanychDwóchTabel"]=function(tabelka1,tabelka2)
    local parametry_modul=require("Module:Parametry");
	return (tabelka1 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka1))and ((tabelka2 and parametry_modul["CzySąElementyNazwaneTablicy"](tabelka2))and parametry_modul["ŁączZbioryNazwanychElementówNumerowanychTabel"]{[1]=tabelka1,[2]=tabelka2} or tabelka1) or tabelka2;
end;
p["ŁączZbioryNumerowanychElementówNienazwanychTabel"]=function(args)
	local parametry_modul=require("Module:Parametry");
	local args2=parametry_modul["KopiujTabelęElementów"](args);
	args2.CzyPairsTablic=true;args2["CzyPairsElementówTablic"]=false;args2.CzyNazwaneElementyTabel=false;args2.CzyTylkoNazwaneElementyTabel=false;
	return parametry_modul["ŁączTabele"](args2);
end;
p["ŁączZbioryNienazwanychElementówNienazwanychTabel"]=function(args)
	local parametry_modul=require("Module:Parametry");
	local args2=parametry_modul["KopiujTabelęElementów"](args);
	args2.CzyPairsTablic=true;args2["CzyPairsElementówTablic"]=true;args2.CzyNazwaneElementyTabel=false;args2.CzyTylkoNazwaneElementyTabel=false;
	return parametry_modul["ŁączTabele"](args2);
end;
p["ŁączZbioryNazwanychElementówNienazwanychTabel"]=function(args)
	local parametry_modul=require("Module:Parametry");
	local args2=parametry_modul["KopiujTabelęElementów"](args);
	args2.CzyPairsTablic=true;args2["CzyPairsElementówTablic"]=true;args2.CzyNazwaneElementyTabel=true;args2.CzyTylkoNazwaneElementyTabel=true;
	return parametry_modul["ŁączTabele"](args2);
end;

p["ŁączZbioryNumerowanychElementówNumerowanychTabel"]=function(args)
	local parametry_modul=require("Module:Parametry");
	local args2=parametry_modul["KopiujTabelęElementów"](args);
	args2.CzyPairsTablic=false;args2["CzyPairsElementówTablic"]=false;args2.CzyNazwaneElementyTabel=false;args2.CzyTylkoNazwaneElementyTabel=false;
	return parametry_modul["ŁączTabele"](args2);
end;
p["ŁączZbioryNienazwanychElementówNumerowanychTabel"]=function(args)
	local parametry_modul=require("Module:Parametry");
	local args2=parametry_modul["KopiujTabelęElementów"](args);
	args2.CzyPairsTablic=false;args2["CzyPairsElementówTablic"]=true;args2.CzyNazwaneElementyTabel=false;args2.CzyTylkoNazwaneElementyTabel=false;
	return parametry_modul["ŁączTabele"](args2);
end;
p["ŁączZbioryNazwanychElementówNumerowanychTabel"]=function(args)
	local parametry_modul=require("Module:Parametry");
	local args2=parametry_modul["KopiujTabelęElementów"](args);
	args2.CzyPairsTablic=false;args2["CzyPairsElementówTablic"]=true;args2.CzyNazwaneElementyTabel=true;args2.CzyTylkoNazwaneElementyTabel=true;
	return parametry_modul["ŁączTabele"](args2);
end;
p["ŁączNumerowaneTabele"]=function(args)
	local parametry_modul=require("Module:Parametry");
	local args2=parametry_modul["KopiujTabelęElementów"](args);
	args2.CzyPairsTablic=false;args2["CzyPairsElementówTablic"]=true;args2.CzyNazwaneElementyTabel=true;args2.CzyTylkoNazwaneElementyTabel=false;
	return parametry_modul["ŁączTabele"](args2);
end;
p["ŁączNienazwaneTabele"]=function(args)
	local parametry_modul=require("Module:Parametry");
	local args2=parametry_modul["KopiujTabelęElementów"](args);
	args2.CzyPairsTablic=true;args2["CzyPairsElementówTablic"]=true;args2.CzyNazwaneElementyTabel=true;args2.CzyTylkoNazwaneElementyTabel=false;
	return parametry_modul["ŁączTabele"](args2);
end;
p["ŁączTabele"] = function(args)
  	local parametry_modul=require("Module:Parametry");
	local tabela={};
	local par1=(args.CzyPairsTablic)and pairs or ipairs;
	local czy_number_nie_tylko_tablic=(not args.CzyPairsTablic)and true or false;
	local par2=(args["CzyPairsElementówTablic"])and pairs or ipairs;
	local czy_number_nie_tylko_elementow_tablic=(not args["CzyPairsElementówTablic"])and true or false;
	local czy_nazwane=(args.CzyNazwaneElementyTabel)and true or false;
	local czy_nie_tylko_nazwane=(not args.CzyTylkoNazwaneElementyTabel)and true or false;
	for licznik, args_tabeli in par1(args)do
		if(((czy_number_nie_tylko_tablic)or(type(licznik)=="number"))and(type(args_tabeli)=="table"))then
			for name,value in par2(args_tabeli)do
				if((czy_nie_tylko_nazwane)and((czy_number_nie_tylko_elementow_tablic)or(type(name)=="number")))then
					table.insert(tabela,value);
				elseif((czy_nazwane)and(czy_nie_tylko_nazwane or ((not czy_nie_tylko_nazwane)and(type(name)~="number"))))then
					if(not tabela[name])then tabela[name]=value;end;
				end;
			end;
		end;
	end;
	return tabela;
end;
p["UsuńElementyTabeli"]=function(tabelka_1,tabelka_2)
	if(not tabelka_1)then return nil;end;
	local tabelka=require("Module:Parametry")["KopiujTabelęElementów"](tabelka_1);
	if(not tabelka_2)then return tabelka;end;
	for name,_ in pairs(tabelka_2)do
		if(tabelka[name])then tabelka[name]=nil;end;
	end;
	return tabelka;
end;
local function CzyTakSilnik(args,funkcja)
	local parametry_modul=require("Module:Parametry");
	local parametr=parametry_modul.CzyTak(args[2]) and require("Module:"..args[2])[args[1]] or args[1];
	local argsfun;
	if(parametry_modul.CzyTak(args[2]))then
		for name,value in pairs(args)do
			local typen=(type(name)=="number");
			if(((typen)and((name~=1)and(name~=2)))or(not typen))then
				if(not argsfun)then argsfun={};end;
				argsfun[(typen and name>2) and (name-2) or name]=value;
			end;
		end;
	else
		parametr=tonumber(parametr) or parametr;
		if(type(parametr)=="string")then
			local parametr2=parametry_modul["Odstępy"](parametr);
			if(parametr2=="true")then 
				parametr=true;
			elseif(parametr2=="false")then
				parametr=false;
			elseif(parametr2=="nil")then
				parametr=nil;
			else
				parametr=tonumber(parametr2) or parametr;
			end;
		end;
	end;
	return (parametry_modul[funkcja]{[1]=parametr,[2]=argsfun,})and "tak" or nil;
end;
p["CzyTakCiąg"]=function(frame)
  local czy=(type(frame)~="table");local czy2=(type(frame)~="function")
  if((czy and czy2) or ((not czy)and (not frame.getParent)))then
  	 local parametry_modul=require("Module:Parametry");
  	 local ciag;local parametry;
  	 if(not czy)then
  	   	local args=frame.args or frame;
    	ciag=args["ciąg"] or args[1];
		parametry=args["parametry"] or args[2];
	 else
	 	ciag=frame;
	 end;
	 return ciag and parametry_modul.CzyTak{[1]=(type(ciag)=="string")and parametry_modul["Odstępy"]{[1]=ciag,[2]="tak",} or ciag,[2]=parametry,} or false;
  else
  	 local parametry_modul=require("Module:Parametry");
  	 local args=frame and ((frame.getParent and(parametry_modul.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame).args or frame) or {};
	 return CzyTakSilnik(args,"CzyTakCiąg");
  end;
end;
function p.CzyTak(frame)
  local czy=(type(frame)~="table");local czy2=(type(frame)~="function")
  if((czy and czy2) or ((not czy)and (not frame.getParent)))then
	   local parametry_modul=require("Module:Parametry");
	   local zmienna;local parametry;
  	   if(not czy)then
  	   	    local args=frame.args or frame;
			zmienna=args["zmienna"] or args[1];
			parametry=args["parametry"] or args[2];
	   else
	   	  zmienna=frame;
	   end;
	   if(zmienna~=nil)then
			if(type(zmienna)=="string")then
				if(zmienna~="")then
					return true;
				else	
					return false;
				end;
			elseif(type(zmienna)=="number")then
				if(zmienna~=0)then
					return true;
				else
					return false;
				end;
			elseif(type(zmienna)=="boolean")then
				return zmienna;
			elseif(type(zmienna)=="table")then
				return p["CzySąElementyTablicy"](zmienna);
			elseif(type(zmienna)=="function")then
				return zmienna(parametry);
			else
				return false;
			end;	
	  else
			return false;
	  end;
  else
  	   local parametry_modul=require("Module:Parametry");
  	   local args=frame and ((frame.getParent and(parametry_modul.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame).args or frame) or {};
	   return CzyTakSilnik(args,"CzyTak");
  end;
end;
function p.PobierzParametr(frame)
	if(type(frame)=="table")then
		local parametry_modul=require("Module:Parametry");
	    local args=(frame.getParent and(parametry_modul.CzyTak(frame.args["wyspecjalizowana"]) and frame or frame:getParent()) or frame).args or frame;
	    return args[1];
	else
		return frame;
	end;
end;
function p.And(frame)
	local czy="tak";
	local parametry_modul=require("Module:Parametry");
	for _,wartosc in ipairs(frame.args)do
		czy=czy and parametry_modul["CzyTakCiąg"](wartosc);
		if(not czy)then return nil;end;
	end;
	return czy and "tak" or nil;
end;
function p.Or(frame)
	local czy=nil;
	local parametry_modul=require("Module:Parametry");
	for _,wartosc in ipairs(frame.args)do
		czy=czy or parametry_modul["CzyTakCiąg"](wartosc);
		if(czy)then return "tak";end;
	end;
	return czy and "tak" or nil;
end;
function p.Not(frame)
	local parametry_modul=require("Module:Parametry");
	return (not parametry_modul["CzyTakCiąg"](frame.args[1]))and "tak" or nil;
end;
function p.IlePodano(frame)
	local args=frame.args;
	local args2=frame:getParent().args;
	local licznik=0;
	for _,name in pairs(args)do
		if(args2[name])then
			licznik=licznik+1;
		end;
	end;
	return licznik;
end;
return p;