diff --git a/repl/docs/sw/README.md b/repl/docs/sw/README.md deleted file mode 100755 index 02d28f0..0000000 --- a/repl/docs/sw/README.md +++ /dev/null @@ -1,27 +0,0 @@ -# NYARAKA YA LUGHA YA PROGRAMU YA NURU - -Hii nyaraka imeandikwa ikilenga watu wenye uzoefu na kuandika au kupanga programu. Inaelezea sintaksia, aina na namna ya kufanya operesheni mbali mbali kutumia lugha ya NURU. - -## Yaliyomo - -- [Safu Kwenye Nuru](arrays.md#arrays-in-nuru) - - [Kutengeneza Safu](arrays.md#creating-arrays) - - [Kupata na Kurekebisha vipengele vya Safu](arrays.md#accessing-and-modifying-array-elements) - - [Kuunganisha Safu](arrays.md#concatenating-arrays) - - [Kuangalia uwepo wa vipengele ndani ya safu](arrays.md#checking-for-array-membership) - - [Kupita na Kurejea kwenye safu](arrays.md#looping-over-arrays) - - [Mbinu za Safu](arrays.md#array-methods) - - [idadi()](arrays.md#idadi()) - - [sukuma()](arrays.md#sukuma()) - - [yamwisho()](arrays.md#yamwisho()) -- [Visaidia-kazi vya Nuru](builtins.md#built-in-functions-in-nuru) - - [Kisaidia-kazi andika() ](builtins.md#the-andika()-function) - - [Kisaidia-kazi jaza()](builtins.md#the-jaza()-function) - - [Kisaidia-kazi aina()](builtins.md#the-aina()-function) - - [Kisaidia-kazi fungua()](builtins.md#the-fungua()-function) -- [Maoni kwenye Nuru](comments.md#comments-in-nuru) - - [Maoni ya mstari mmoja](comments.md#single-line-comments) - - [Maoni ya mistari mingi](comments.md#multi-line-comments) -- [Kauli za masharti kwenye Nuru](ifStatements.md#conditional-statements-in-nuru) - - [Kauli ya kama](ifStatements.md#if-statement-(kama)) - - [Kauli za Au Kama na Sivyo)](ifStatements.md#else-if-and-else-blocks-(au-kama-and-sivyo)) \ No newline at end of file diff --git a/repl/docs/sw/arrays.md b/repl/docs/sw/arrays.md deleted file mode 100755 index d9fbc6b..0000000 --- a/repl/docs/sw/arrays.md +++ /dev/null @@ -1,122 +0,0 @@ -# Orodha Au Safu Katika Nuru - -Safu katika nuru ni miundo ya data ambayo inaweza kubeba vitu vingi, ikiwa ni pamoja na aina za data tofauti tofauti kama `namba`, `tungo`, `buliani`, `vitendakazi`, na thamani `tupu`. Ukurasa huu unaangazia vipengele mbalimbali vya safu, ikiwemo namna ya kutengeneza, kuchambua, na kuzunguka ndani yake kwa kutumia vitendakazi vilivyojengwa ndani ya Nuru. - -## Kutengeneza Safu - -Kutengeneza safu, tumia mabano mraba na tenganisha kila kitu kimoja kwa kutumia mkwaju: - -```s -orodha = [1, "pili", kweli] -``` - -## Kupata na Kubadilisha Vipengele vya Safu - -Safu katika Nuru ni zero-indexed; ikimaanisha kipengele cha kwanza katika safu kina kumbukumbu namba 0. Kupata kipengele, unaweza ukatumia kumbukumbu namba yake ndani ya mabano mraba: - -```s -namba = [10, 20, 30] -jina = namba[1] // jina is 20 -``` - -Unaweza ukabadilisha kipengele katika safu kwa kutumia kumbukumbu namba yake: - -```s -namba = [10, 20, 30] -namba[1] = 25 -andika(namba) // Tokeo: [10,25,30] -``` - -## Kuunganisha Safu - -Kuunganisha safu mbili au zaidi, tumia kiendeshi `+`: - -```s -a = [1, 2, 3] -b = [4, 5, 6] -c = a + b -// c is now [1, 2, 3, 4, 5, 6] -``` - -## Kuangalia Uanachama Katika Safu - -Tumia neno msingi `ktk` kuangalia kama kipengele kipo ndani ya safu: - -```s -namba = [10, 20, 30] -andika(20 ktk namba) // Tokeo: kweli -``` - -## Kuzunguka Ndani ya Safu - -Unaweza kutumia maneno msingi `kwa` na `ktk` kuzunguka ndani ya safu. Kuzunguka ndani ya safu na kupata kipengele peke yake tumia sintaksia ifuatayo: - -```s -namba = [1, 2, 3, 4, 5] - -kwa thamani ktk namba { - andika(thamani) -} - -//Tokeo: -1 -2 -3 -4 -5 -``` - -Kuzunguka ndani ya safu na kupata kumbukumbu namba na kipengele tumia sintaksi aifuatayo: - -```s -majina = ["Juma", "Asha", "Haruna"] - -kwa idx, jina ktk majina { - andika(idx, "-", jina) -} - -//Tokeo: -0-Juma -1-Asha -2-Haruna -``` - -## Vitendakazi vya Safu - -Nuru ina vitendakazi mbalimbali vilivyojengwa ndani kwa ajili ya Safu: - -### idadi() - -`idadi()` hurudisha urefu wa safu: - -```s -a = [1, 2, 3] -urefu = a.idadi() -andika(urefu) // Tokeo: 3 -``` - -### sukuma() - -`sukuma()` huongeza kipengele kimoja au zaidi mwishoni mwa safu: - -```s -a = [1, 2, 3] -a.sukuma("s", "g") -andika(a) // Tokeo [1, 2, 3, "s", "g"] -``` - -### yamwisho() - -`yamwisho()` hurudisha kipengele cha mwisho katika safu, au `tupu` kama safu haina kitu: - -```s -a = [1, 2, 3] -mwisho = a.yamwisho() -andika(mwisho) // Tokeo: 3 - -b = [] -mwisho = b.yamwisho() -andika(mwisho) // Tokeo: tupu -``` - -Kwa kutumia taarifa hii, unaweza ukafanyakazi na safu za Nuru kwa ufanisi, kufanya iwe rahisi kuchambua mikusanyo ya data katika programu zako. diff --git a/repl/docs/sw/bools.md b/repl/docs/sw/bools.md deleted file mode 100755 index a43a5a2..0000000 --- a/repl/docs/sw/bools.md +++ /dev/null @@ -1,97 +0,0 @@ -# Kufanya Kazi na Buliani Katika Nuru - -Vitu vyote katika Nuru ni kweli, yaani thamani yoyote ni kweli isipokua tupu and sikweli. Hutumika kutathmini semi ambazo zinarudisha kweli au sikweli. - -## Kutathmini Semi za Buliani - -### Kutathmini Semi Rahisi - -Katika Nuru, unaweza kutathmini semi rahisi zinazorudisha thamani ya buliani: - -```go -andika(1 > 2) // Matokeo: `sikweli` - -andika(1 + 3 < 10) // Matokeo: `kweli` -``` - -### Kutathmini Semi Tata - -Katika Nuru, unaweza kutumia viendeshaji vya buliani kutathmini semi tata: - -```go -a = 5 -b = 10 -c = 15 - -tokeo = (a < b) && (b < c) - -kama (tokeo) { - andika("Hali zote mbili ni kweli") -} sivyo { - andika("Angalau hali moja ni sikweli") -} -// Tokeo: "Hali zote mbili ni kweli" -``` - -Hapa tumetengeneza vibadilika vitatu a,b,c. Kisha tukatathmini semi (a < b) && (b < c). Kwa sababu semi zote mbili ni kweli, tokeo litakua "Hali zote mbili ni kweli". - -## Vitendakazi vya Buliani - -Nuru ina vitendakazi vya buliani kadhaa ambavyo unaweza ukatumia kutathmini semi: - -### Kitendakazi `&&` - -Kitendakazi `&&` hutathmini kwenda kweli kama tu vitu vyote vinavyohusika ni kweli. Kwa mfano: - -```go -andika(kweli && kweli) // Tokeo: `kweli` - -andika(kweli && sikweli) // Tokeo: `sikweli` -``` - -### Kitendakazi `||` - -Kitendakazi || hutathmini kwenda kweli kama angalau kitu kimoja kati ya vyote vinavyohusika ni kweli. Kwa mfano: - -```go -andika(kweli || sikweli) // Tokeo: `kweli` - -andika(sikweli || sikweli) // Tokeo: `sikweli` -``` - -### Kitendakazi `!` - -Kitendakazi `!` hukanusha thamani ya kitu. Kwa mfano: - -```go -andika(!kweli) // Tokeo: `sikweli` - -andika(!sikweli) // Tokeo: `kweli` -``` - -## Kufanya Kazi na Thamani za Buliani Katika Vitanzi - -Katika Nuru, unaweza ukatumia semi za buliani katika vitanzi kuendesha tabia zake. Kwa mfano: - -```go -namba = [1, 2, 3, 4, 5] - -kwa thamani ktk namba { - kama (thamani % 2 == 0) { - andika(thamani, " ni namba shufwa") - } sivyo { - andika(thamani, " ni namba witiri") - } -} - -// Output: -// 1 ni namba witiri -// 2 ni namba shufwa -// 3 ni namba witiri -// 4 ni namba shufwa -// 5 ni namba witiri -``` - -Hapa , tumetengeneza safu yenye namba 1 hadi 5 kisha tukazunguka ndani ya safu hiyo na kwa kila namba tukatumia kitendakazi `%` ilikubaini kama namba ni shufwa au witiri. Matokeo yatakua ni "ni namba shufwa" kwa namba shufwa na "ni namba witiri" kwa namba witiri. - -Vitu buliani katika Nuru vinaweza kutumika kutathmini semi ambazo zinarudisha thamani ya kweli au sikweli. Unaweza kutumia vitendakazi vya buliani kutathmini semi tata na kuendesha tabia ya vitanzi. Kuelewa namna ya kufanya kazi na thamani za buliani ni ujuzi wamsingi kwa mtengenezaji programu yeyote wa Nuru. diff --git a/repl/docs/sw/builtins.md b/repl/docs/sw/builtins.md deleted file mode 100755 index b4c188a..0000000 --- a/repl/docs/sw/builtins.md +++ /dev/null @@ -1,54 +0,0 @@ -# Vitendakazi Vilivyojengwa Ndani ya Nuru - -Nuru ina vitendakazi kadhaa vilivyojengwa ndani vinavyofanya kazi husika. - -## Kitendakazi andika() - -Kitendakazi `andika()` kinatumika kuchapisha ujumbe kwenye konsoli. Inawezakuchukua hoja sifuri au zaidi, na hoja zitachapishwa na nafasi kati yao. Kwa kuongeza, `andika()` huhimili uundaji wa msingi kama vile `/n` kwa ajili ya mstari mpya, `/t` kwa ajili ya nafasi ya kichupo, na `\\` kwa ajili ya mkwajunyuma. Mfano: - -```go -andika(1, 2, 3) // Output: 1 2 3 -``` - -```go -andika("Jina: Asha /n Umri: 20 /n Chuo: IFM") - -// Output: -// Jina: Asha -// Umri: 20 -// Chuo: IFM -``` - -## Kitendakazi jaza() - -Kitendakazi `jaza()` kinatumika kupata ingizo kutoka kwa mtumiaji. Inawezakuchukua hoja sifuri au moja, ambayo ni utungo utakao tumika kama kimahasishi kwa mtumiaji. Mfano: - -```go -fanya salamu = unda() { - fanya jina = jaza("Unaitwa nani? ") - andika("Mambo vipi", jina) -} - -salamu() -``` - -Katika mfano huu, tunaainisha kitendakazi `salamu()` ambacho kinamhamasisha mtumiaji kuingiza jina kwa kutumia kitendakazi `jaza()`. Kisha tunatumia kitendakazi `andika()` kuchapisha ujumbe unaobeba jina la mtumiaji aliloingiza. - -## Kitendakazi aina() - -Kitendakazi `aina()` kinatumika kutambua aina ya kitu. Inakubali hoja moja, na thamani inayorudi hua ni utungo unaoonyesha aina ya kitu. Mfano: - -```go -aina(2) // Output: "NAMBA" -aina("Nuru") // Output: "NENO" -``` - -## Kitendakazi fungua() - -Kitendakazi `fungua()` kinatumika kufungua faili. Inakubali hoja moja, ambayo ni njia ya faili unalotaka kufungua. Mfano: - -```go -faili = fungua("data.txt") -``` - -Katika mfano huu, tumetumia kitendakazi `fungua()` kufungua faili linaloitwa "data.txt". Kibadilika `faili` kinabeba kumbukumbu ya faili lililofunguliwa. diff --git a/repl/docs/sw/dictionaries.md b/repl/docs/sw/dictionaries.md deleted file mode 100755 index 04f2762..0000000 --- a/repl/docs/sw/dictionaries.md +++ /dev/null @@ -1,134 +0,0 @@ -# Kamusi Katika Nuru - -Kamusi katika Nuru ni miundo ya data inayotunza jozi za funguo-thamani. Ukurasa huu unatoa maelezo kuhusu Kamusi katika Nuru, ikiwemo namna ya kutengeneza, namna ya kubadilisha, na namna ya kuzunguka ndani yake. - -## Kutengeneza Kamusi - -Kamusi zinawekwa kwenye mabano singasinga na hujumuisha funguo na thamani zake zikitenganishwa na nukta pacha. Mfano wa uainishwaji wa kamusi: - -```go - -orodha = {"jina": "Juma", "umri": 25} -``` - -Funguo zinawezakua tungo, namba, desimali, au buliani na thamani inaweza kua aina ya data yoyote ikiwemo tungo, namba, desimali, buliani, tupu, au kitendakazi: - -```go -k = { - "jina": "Juma", - "umri": 25, - kweli: "kweli", - "salimu": unda(x) { andika("habari", x) }, - "sina thamani": tupu -} -``` - -## Kupata Vipengele - -Unaweza kupata vipengele vya kamusi kwa kutumia funguo zake: - -```go -k = { - "jina": "Juma", - "umri": 25, - kweli: "kweli", - "salimu": unda(x) { andika("habari", x) }, - "sina thamani": tupu -} - -andika(k[kweli]) // kweli -andika(k["salimu"]("Juma")) // habari Juma -``` - -## Kuboresha Vipengele - -Boresha thamani ya kipengele kwa kukipa thamani mpya kwenye funguo yake: - -```go -k = { - "jina": "Juma", - "umri": 25, - kweli: "kweli", - "salimu": unda(x) { andika("habari", x) }, - "sina thamani": tupu -} - -k['umri'] = 30 -andika(k['umri']) // 30 -``` - -## Kuongeza Vipengele Vipya - -Ongeza jozi mpya ya funguo-thamani kwenye kamusi kwa kuipa thamani funguo ambayo haipo kwenye kamusi husika: - -```go -k["lugha"] = "Kiswahili" -andika(k["lugha"]) // Kiswahili -``` - -## Kuunganisha Kamusi - -Unganisha kamusi mbili kwa kutumia kiendeshi `+`: - -```go -matunda = {"a": "apple", "b": "banana"} -mboga = {"c": "tembele", "d": "mchicha"} -vyakula = matunda + mboga -andika(vyakula) // {"a": "apple", "b": "banana", "c": "tembele", "d": "mchicha"} -``` - -## Angalia Kama Funguo Ipo Kwenye Kamusi - -Tumia neno msingi `ktk` kuangalia kama funguo ipo kwenye kamusi: - -```go - -k = { - "jina": "Juma", - "umri": 25, - kweli: "kweli", - "salimu": unda(x) { andika("habari", x) }, - "sina thamani": tupu -} - -"umri" ktk k // kweli -"urefu" ktk k // sikweli -``` - -## Kuzunguka Ndani Ya Kamusi - -Zunguka ndani ya kamusi kupata funguo na thamani zake: - -```go - -hobby = {"a": "kulala", "b": "kucheza mpira", "c": "kuimba"} - -kwa i, v ktk hobby { - andika(i, "=>", v) -} - -//Output - -a => kulala -b => kucheza mpira -c => kuimba -``` - -Kuzunguka ndani ya kamusi na kupata thamani peke yake: - -```go - -hobby = {"a": "kulala", "b": "kucheza mpira", "c": "kuimba"} - -kwa i, v ktk hobby { - andika(i, "=>", v) -} - -//Output - -kulala -kucheza mpira -kuimba -``` - -Kwa ufahamu huu, unaweza ukatumia kamusi kikamilifu katika Nuru kutunza na kusimamia jozi za funguo-thamani, na kupata namna nyumbufu ya kupangilia na kupata data katika programu zako. diff --git a/repl/docs/sw/for.md b/repl/docs/sw/for.md deleted file mode 100755 index 7883698..0000000 --- a/repl/docs/sw/for.md +++ /dev/null @@ -1,166 +0,0 @@ -# Vitanzi Vya Kwa Katika Nuru - -Vitanzi vya `kwa` ni muundo msingi wa udhibiti katika Nuru ambavyo hutumika kuzunguka vitu vinavyozungukika kama tungo, safu, na kamusi. Ukurasahuu unaangazia sintaksia na matumizi ya Vitanzi katika Nuru, ikiwemo kuzunguka ndani ya jozi ya funguo-thamani, na matumizi ya matamshi `vunja` na `endelea`. - -## Sintaksia - -Kutengeneza kitanzi cha `kwa`, tumia neno msingi `kwa` likifwatiwa na kitambulishi cha muda mfupi kama vile `i` au `v` na kitu kinachozungukika. Funga mwili wa kitanzi na mabano singasinga `{}`. Mfano unaotumia tungo: - -```go -jina = "lugano" - -kwa i ktk jina { - andika(i) -} - -// Tokeo: -l -u -g -a -n -o -``` - -## Kuzunguka Ndani ya Jozi ya Funguo-Thamani - -### Kamusi - -Nuru inakuruhusu kuzunguka ndani ya kamusi kupata thamani moja moja au jozi ya funguo na thamani yake. Kupata tu thamani, tumia kitambulisha cha muda mfupi: - -```go -kamusi = {"a": "andaa", "b": "baba"} - -kwa v ktk kamusi { - andika(v) -} - -// Tokeo: - -andaa -baba -``` - -Kupata thamani ya funguo na thamani zake, tumia vitambulishi vya muda mfupi viwili: - -```go - -kwa k, v ktk kamusi { - andika(k + " ni " + v) -} - -// Tokeo: - -a ni andaa -b ni baba -``` - -### Tungo - -Kuzunguka juu ya thamani za tungo, tumia kitambulishi cha muda mfupi: - -```go -kwa v ktk "mojo" { - andika(v) -} - -// Tokeo: - -m -o -j -o -``` - -Kuzunguka juu ya funguo na thamani zake, tumia vitambulishi vya muda mfupi viwili: - -```go -kwa i, v ktk "mojo" { - andika(i, "->", v) -} - -// Tokeo: - -0 -> m -1 -> o -2 -> j -3 -> o -``` - -### Safu - -Kuzunguka juu ya thamani za safu, tumia kitambulishi cha muda mfupi: - -```go -majina = ["juma", "asha", "haruna"] - -kwa v ktk majina { - andika(v) -} - -// Tokeo: - -juma -asha -haruna -``` - -Kuzunguka juu ya funguo na thamani katika safy, tumia vitambulishi vya muda mfupi viwili: - -```go -kwa i, v ktk majina { - andika(i, "-", v) -} - -// Tokeo: - -0 - juma -1 - asha -2 - haruna -``` - -## Vunja na Endelea - -### Vunja - -Tumia neno msingi `vunja` kisitisha kitanzi: - -```go - -kwa i, v ktk "mojo" { - kama (i == 2) { - andika("nimevunja") - vunja - } - andika(v) -} - -// Tokeo: - -m -o -j -nimevunja - -``` - -### Endelea - -Tumia neno msingi `endelea` kuruka mzunguko maalum: - -```go -kwa i, v ktk "mojo" { - kama (i == 2) { - andika("nimeruka") - endelea - } - andika(v) -} - -// Tokeo: - -m -o -nimeruka -o -``` diff --git a/repl/docs/sw/functions.md b/repl/docs/sw/functions.md deleted file mode 100755 index d913a52..0000000 --- a/repl/docs/sw/functions.md +++ /dev/null @@ -1,91 +0,0 @@ -# Undo (Functions) - -Vitendakazi ni sehemu ya msingi ya Nuru inayokuwezesha kuainisha mapande ya msimbo yanayoweza kutumika tena. Ukurasa huu unaainisha sintaksia na matumizi ya vitendakazi katika nuru ikiwemo vipengele, vipengele vya msingi, matamshi ya kurudisha, kujirudia, na vifungizi. - -## Sintaksia - -Pande la kitendakazi huanza na neno msingi `unda` likifuatiwa na vipengele vinavyowekwa ndani ya mabano `()` na mwili unaowekwa ndani ya mabano singasinga `{}`. Vitendakazi lazima viwekwe kwenye kibadiliki: - -```go -jumla = unda(x, y) { - rudisha x + y -} - -jumla(2, 3) // 5 -``` - -## Vipengele - -Vitendakazi vinawezakuwa nazifuri au idadi yoyote ya vipengele. Vipengele vinawezakua vya aina yoyote hata vitendakazi vingine: - -```go -salamu = unda(jina) { - andika("Habari yako", jina) -} - -salamu("asha") // Habari yako asha -``` - -## Vipengele Vya Msingi - -Vitendakazi vinawezakupewa vipengele vya msingi: - -```go -salimu = unda(salamu="Habari") { - andika(salamu) -} - -salimu() // Habari -salimu("Mambo") // Mambo -``` - -## Rudisha - -Unaweza pia ukarudisha thamani kwa kutumia neno msingi `rudisha`. Neno msingi `rudisha` husitisha pande la msimbo na kurudisha thamani: - -```go -mfano = unda(x) { - rudisha "nimerudi" - andika(x) -} - -mfano("x") // nimerudi -``` - -## Kujirudia - -Nuru pia inahimili kujirudia. Mfano wa kujirudia kwa kitendakazi cha Fibonacci: - -```go - -fib = unda(n) { - kama (n <= 1) { - rudisha n - } sivyo { - rudisha fib(n-1) + fib(n-2) - } -} - -andika(fib(10)) // 55 -``` - -Kitendakazi fib kinakokotoa namba ya Fibonacci ya n kwa kujiita yenyewe ikiwa na n-1 na n-2 kama vipengele mpaka ambapo n ni ndogo kuliko au sawa na moja. - -## Vifungizi - -Vifungizi ni vitendakazi visivyo na jina ambayo vinaweza kudaka na kuhifadhi marejeo ya vibadilika kutoka katika muktadha unaovizunguka. Katika Nuru, unaweza kutengeneza vifungizi kwa kutumia neno msingin `unda` bila kuiweka kwenye kibadiliki. Mfano: - -```go -fanya jum = unda(x) { - rudisha unda(y) { - rudisha x + y - } -} - -fanya jum_x = jum(5) -andika(jum_x(3)) // 8 -``` - -Katika mfano hapo juu, kitendakazi `jum` kinarudisha kitendakazi kingine ambacho kinabeba kipengele kimoja tu `y`. Kitendakazi kinachorudisha kinawezakupata kibadiliki x kutoka katika muktadha unaokizunguka. - -Sasa umeshaelewa misingi ya vitendakazi katika Nuru, ikiwemo kujirudia na vifungizi, unaweza ukatengeneza mapande ya msimbo yanayoweza kutumika tena na tena na kurahisisha programu zako na kuboresha mpangilio wa msimbo wako. diff --git a/repl/docs/sw/identifiers.md b/repl/docs/sw/identifiers.md deleted file mode 100755 index 6dd592b..0000000 --- a/repl/docs/sw/identifiers.md +++ /dev/null @@ -1,32 +0,0 @@ -# Vitambulisho katika Nuru - -Vitambulisho hutumika kuweka majina kwenye vigezo, vitendakazi na vipengele vingine katika msimbo wako wa Nuru. Ukurasa huu unashughulikia sheria na mbinu bora za kuunda vitambulisho katika Nuru. - -## Sheria za Sintaksia - -Vitambulisho vinaweza kuwa na herufi, nambari na nistari wa chini `_`. Walakini, kuna sheria chache ambazo unapaswa kufuata wakati wa kuunda vitambulisho: - -- Vitambulisho haviwezi kuanza na nambari. -- Vitambulisho huwa na tofauti kulingana na matumizi ya herufi kubwa na ndogo. Kwa mfano, `kibadilikaChangu` na `kibadilikachangu` huchukuliwa kuwa vitambulisho tofauti. - -Hapa kuna mifano ya vitambulisho halali: - -```go -fanya mwaka_wa_kuzaliwa = 2020 -andika(mwaka_wa_kuzaliwa) // 2020 - -fanya badili_c_kwenda_p = "C kwenda P" -andika(badili_c_kwenda_p) // "C kwenda P" -``` - -Katika mifano iliyo hapo juu, mwaka_wa_kuzaliwa na badili_c_kwenda_p zote ni vitambulisho halali. - -## Mazoea Bora - -Wakati wa kuchagua vitambulisho, ni muhimu kufuata mazoea bora ili kuhakikisha kuwa msimbo wako uko wazi na rahisi kueleweka: - -- Tumia majina yanayoelezea wazi kusudi au maana ya kigezo au kitendakazi. -- Fuata kanuni thabiti ya kuweka majina, kama vile camelCase (kibadilikaChangu) au snake_case (kibadilika_changu). -- Epuka kutumia majina tofauti ya herufi moja, isipokuwa kwa vijisehemu vinavyokubalika kwa kawaida kama vile vihesabu vitanzi (i, j, k). - -Kwa kufuata mbinu bora hizi unapounda vitambulisho, utafanya code yako ya Nuru iwe rahisi kusoma na kutunza kwa wewe na wengine. diff --git a/repl/docs/sw/if.md b/repl/docs/sw/if.md deleted file mode 100755 index a364c61..0000000 --- a/repl/docs/sw/if.md +++ /dev/null @@ -1 +0,0 @@ -# Kama/Sivyo (If/Else) \ No newline at end of file diff --git a/repl/docs/sw/keywords.md b/repl/docs/sw/keywords.md deleted file mode 100755 index 5160a95..0000000 --- a/repl/docs/sw/keywords.md +++ /dev/null @@ -1 +0,0 @@ -# Maneno Muhimu (Keywords) \ No newline at end of file diff --git a/repl/docs/sw/maoni.md b/repl/docs/sw/maoni.md deleted file mode 100755 index a0ca683..0000000 --- a/repl/docs/sw/maoni.md +++ /dev/null @@ -1,29 +0,0 @@ -# Maoni Katika Nuru - -Katika Nuru, unaweza kuandika maoni kutoa maelezo na hati kwa kazi yako. Maoni ni mistari ya maandishi ambayo hupuuzwa na mfasiri (interpreter) wa Nuru, kwa hivyo haitaathiri tabia ya programu yako. Kuna aina mbili za maoni katika Nuru: maoni ya mstari mmoja na maoni ya mistari mingi. - -## Maoni ya Mstari Mmoja - -Maoni ya mstari mmoja yanatumiwa kutoa maelezo mafupi au hati kwa mstari mmoja wa kazi. Kuandika maoni ya mstari mmoja katika Nuru, tumia mikwaju miwili ya mbele (//) ikifuatiwa na maandishi ya maoni yako. Hapa kuna mfano: - -```s -// Mstari huu utapuuzwa na mfasiri wa Nuru -``` - -Katika mfano huu, maandishi ya maoni "Mstari huu utapuuzwa na mfasiri wa Nuru" yatapuuzwa na mfasiri, kwa hivyo haitaathiri tabia ya programu. - -## Maoni ya Mistari Mingi - -Maoni ya mistari mingi yanatumiwa kutoa maelezo ya kina zaidi au hati kwa mistari mingi ya programu yako. Kuandika maoni ya mistari mingi katika Nuru, tumia ukwaju wa mbele ikifuatiwa na nyota ( /* ) kuanza maoni, na nyota ikifuatiwa na ukwaju wa mbele ( */ ) kumaliza maoni. Hapa kuna mfano: - -```s -/ -Mistari hii -Ita -puuzwa -/ -``` - -Katika mfano huu, mistari yote kati ya alama /* na */ itapuuzwa na mfasiri wa Nuru, kwa hivyo haitaathiri tabia ya programu. - -Kwa kutumia maoni ya mstari mmoja na maoni ya mistari mingi katika Nuru, unaweza kufanya kazi yako iwe rahisi kusoma na kudumisha kwa ajili yako na wengine ambao watahitaji kufanya kazi na programu yako katika siku zijazo. diff --git a/repl/docs/sw/null.md b/repl/docs/sw/null.md deleted file mode 100755 index 628c65e..0000000 --- a/repl/docs/sw/null.md +++ /dev/null @@ -1 +0,0 @@ -# Tupu (Null) \ No newline at end of file diff --git a/repl/docs/sw/numbers.md b/repl/docs/sw/numbers.md deleted file mode 100755 index dd4ec8b..0000000 --- a/repl/docs/sw/numbers.md +++ /dev/null @@ -1 +0,0 @@ -# Namba na Desimali (Ints/Floats) \ No newline at end of file diff --git a/repl/docs/sw/operators.md b/repl/docs/sw/operators.md deleted file mode 100755 index cf38456..0000000 --- a/repl/docs/sw/operators.md +++ /dev/null @@ -1 +0,0 @@ -# Matendaji (Operators) \ No newline at end of file diff --git a/repl/docs/sw/range.md b/repl/docs/sw/range.md deleted file mode 100755 index d8e73c3..0000000 --- a/repl/docs/sw/range.md +++ /dev/null @@ -1,55 +0,0 @@ -## Kitendakazi cha Mfululizo - -Kitendakazi cha `mfululizo` hutoa mfululizo wa nambari, sawa na kitendakazi cha `range()` cha Python. Kinaweza kutumika katika vitanzi au kuunda safu za nambari zinazofuatana. - -### Muundo - -```go -mfululizo(mwisho) -mfululizo(mwanzo, mwisho) -mfululizo(mwanzo, mwisho, hatua) -``` - -### Vipengele - -- `mwisho`: Kikomo cha juu cha mfululizo (haijumuishwi). -- `mwanzo` (si lazima): Thamani ya kuanzia ya mfululizo. Chaguo-msingi ni 0. -- `hatua` (si lazima): Ongezeko kati ya kila nambari katika mfululizo. Chaguo-msingi ni 1. - -### Thamani Inayorudishwa - -Hurudisha safu ya nambari kamili. - -### Mifano - -```go -// Toa nambari kutoka 0 hadi 4 -kwa i katika mfululizo(5) { - andika(i) -} -// Tokeo: 0 1 2 3 4 - -// Toa nambari kutoka 1 hadi 9 -kwa i katika mfululizo(1, 10) { - andika(i) -} -// Tokeo: 1 2 3 4 5 6 7 8 9 - -// Toa nambari shufwa kutoka 0 hadi 8 -kwa i katika mfululizo(0, 10, 2) { - andika(i) -} -// Tokeo: 0 2 4 6 8 - -// Toa nambari kwa mpangilio wa kurudi nyuma -kwa i katika mfululizo(10, 0, -1) { - andika(i) -} -// Tokeo: 10 9 8 7 6 5 4 3 2 1 -``` - -### Vidokezo - -- Thamani ya `mwisho` haijumuishwi, ikimaanisha mfululizo utasimama kabla ya kufikia thamani hii. -- Ikiwa `hatua` hasi imetolewa, `mwanzo` inapaswa kuwa kubwa kuliko `mwisho`. -- Thamani ya `hatua` haiwezi kuwa sifuri. diff --git a/repl/docs/sw/strings.md b/repl/docs/sw/strings.md deleted file mode 100755 index 0185efb..0000000 --- a/repl/docs/sw/strings.md +++ /dev/null @@ -1 +0,0 @@ -# Neno (Strings) \ No newline at end of file diff --git a/repl/docs/sw/switch.md b/repl/docs/sw/switch.md deleted file mode 100755 index ec1fc19..0000000 --- a/repl/docs/sw/switch.md +++ /dev/null @@ -1 +0,0 @@ -# Badili (Switch) \ No newline at end of file diff --git a/repl/docs/sw/while.md b/repl/docs/sw/while.md deleted file mode 100755 index e022883..0000000 --- a/repl/docs/sw/while.md +++ /dev/null @@ -1 +0,0 @@ -# Wakati (While) \ No newline at end of file diff --git a/repl/repl.go b/repl/repl.go index bab82d0..e26c631 100755 --- a/repl/repl.go +++ b/repl/repl.go @@ -1,5 +1,4 @@ package repl - import ( "embed" "fmt" @@ -38,7 +37,6 @@ func Read(contents string) { for _, msg := range p.Errors() { fmt.Println("\t" + styles.ErrorStyle.Render(msg)) } - } evaluated := evaluator.Eval(program, env) if evaluated != nil { @@ -46,7 +44,6 @@ func Read(contents string) { fmt.Println(styles.ReplStyle.Render(evaluated.Inspect())) } } - } func Start() { @@ -90,7 +87,6 @@ func (d *dummy) executor(in string) { fmt.Println(styles.ReplStyle.Render(evaluated.Inspect())) } } - } func completer(in prompt.Document) []prompt.Suggest { @@ -100,8 +96,8 @@ func completer(in prompt.Document) []prompt.Suggest { func Docs() { zone.NewGlobal() + // Removed the Swahili language option languageChoice := []list.Item{ - languages{title: "Kiswahili", desc: "Soma nyaraka kwa Kiswahili", dir: "sw"}, languages{title: "English", desc: "Read documentation in English", dir: "en"}, } @@ -146,25 +142,4 @@ var ( item{title: "Time", desc: "⏰ Manage time with ease in Nuru", filename: "time.md"}, item{title: "While", desc: "⌛ Learn the art of patience with 'while' loops in Nuru", filename: "while.md"}, } - - kiswahiliItems = []list.Item{ - item{title: "Maoni Katika Nuru", desc: "💬 Toa mawazo yako na maoni (comments) katika Nuru", filename: "maoni.md"}, - item{title: "Vitambulishi", desc: "🔖 Toa utambulisho wa kipekee kwa vigezo vyako katika Nuru", filename: "identifiers.md"}, - item{title: "Nambari", desc: "🔢 Gundua uchawi wa nambari katika Nuru", filename: "numbers.md"}, - item{title: "Maneno", desc: "🎼 Tunga hadithi kwa kutumia maneno katika Nuru", filename: "strings.md"}, - item{title: "Kamusi", desc: "📚 Fungua maarifa ya kamusi katika Nuru", filename: "dictionaries.md"}, - item{title: "Buliani", desc: "👍👎 Kuwa mtaalam wa ulimwengu wa 'if' na 'else' kwa kutumia bool", filename: "bools.md"}, - item{title: "Tupu", desc: "🌌 Kubali utupu na Null katika Nuru", filename: "null.md"}, - item{title: "Safu", desc: "🚀 Fungua nguvu za safu (arrays) katika Nuru", filename: "arrays.md"}, - item{title: "Kwa", desc: "🔄 Rudia kama mtaalam kwa kutumia 'kwa' katika Nuru", filename: "for.md"}, - item{title: "Wakati", desc: "⌛ Jifunze sanaa ya subira na vitanzi vya 'wakati' katika Nuru", filename: "while.md"}, - item{title: "Undo", desc: "🔧 Unda kazi zenye nguvu katika Nuru", filename: "function.md"}, - item{title: "Badili", desc: "🧭 Elekeza hali ngumu kwa kutumia 'badili' katika Nuru", filename: "switch.md"}, - item{title: "Faili", desc: "💾 Shughulikia faili kwa urahisi katika Nuru", filename: "files.md"}, - item{title: "Muda", desc: "⏰ Simamia muda kwa urahisi katika Nuru", filename: "time.md"}, - item{title: "JSON", desc: "📄 Kuwa mtaalam wa sanaa ya JSON katika Nuru", filename: "json.md"}, - item{title: "Mtandao", desc: "🌐 Chunguza ulimwengu wa mitandao katika Nuru", filename: "net.md"}, - item{title: "Vifurushi", desc: "📦 Tumia nguvu za vifurushi katika Nuru", filename: "packages.md"}, - item{title: "Vijenzi", desc: "💡 Funua siri za kazi za kujengwa katika Nuru", filename: "builtins.md"}, - } )