Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Trybinteraktywny
2.1.Trybinteraktywny
25
WywołanieinterpreterajęzykaLuabezdodatkowychparametrówpowodujeurucho-
mieniegowtrybieinteraktywnym.Wtymtrybieinterpreteroczekujeodużytkownika
wprowadzeniainstrukcji,akażdąznichnatychmiastwykonuje.
Programpowłoki
$lua
Lua50304
Copyright(C)1994-2017Lua0org,PUC-Rio
>print("Hello,world")
Hello,world
>print(30)
30
>print("Hello,world",30)
Hello,world
>
30
Zwróćuwagę,żewostatnimprzypadkuwywołaliśmyfunkcję
print
zdwomaargu-
mentamioddzielonymiprzecinkiem-ciągiemznakównHello,world”orazliczbą
całkowitąowartości30.Gdyfunkcja
print
wypisujenawyjściuwielewartości,
oddzielajesymbolemtabulatora.Obiewartościzostaływięcwypisanewjednym
wierszuzzachowaniemeleganckiegoodstępu.
Jakjużsięprzekonałeś,jeślidointerpreteraLuaprzekażemyjakoparametr
ścieżkędopliku,wykonaonzawartewniminstrukcje,anastępniezakończyswoje
działanie.Niezawszejesttojednakzachowaniepożądane.Rozważmynaprzykład
plik
sum0lua
,któryzawieradefinicjęrekurencyjnejfunkcji
sum
,zwracającejsumę
liczbnaturalnychod1don.
Wyciąg2-3.Zawartośćplikusum0lua
1
functionsum(n)
ifn<=0then
else
return0
returnn+sum(n-1)
2
3
4
5
6
7
end
end
Wywołanieinterpreterazpojedynczymparametrem
sum0lua
niebyłobyzbytprak-
tyczne.Interpretercoprawdaodczytałbyzawartośćwskazanegoplikuiwykonał
zawartewniminstrukcje,tworzącfunkcjęsum,alezarazpotemzakończyłbyswoje
działanie,usuwającprzyokazjifunkcję
sum
zpamięcitymczasowejiuniemożliwiając
namjejpóźniejszewykorzystanie.