[{"data":1,"prerenderedAt":2139},["ShallowReactive",2],{"navigation_docs":3,"-advance-module-interface":198,"-advance-module-interface-surround":2135},[4,30,81,118,147,171,184],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"/getting-started","1.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","/getting-started/introduction","1.getting-started/2.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","/getting-started/installation","1.getting-started/3.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Quick start","/getting-started/quickstart","1.getting-started/4.quickstart","i-lucide-code-xml",{"title":26,"path":27,"stem":28,"icon":29},"Troubleshooting","/getting-started/troubleshooting","1.getting-started/5.troubleshooting","i-lucide-wrench",{"title":31,"icon":6,"path":32,"stem":33,"children":34,"page":6},"Core Features","/core-features","2.core-features",[35,39,43,48,52,56,60,64,68,73,77],{"title":36,"path":37,"stem":38,"icon":24},"Main function","/core-features/main-function","2.core-features/1.main-function",{"title":40,"path":41,"stem":42,"icon":24},"Variables","/core-features/variables","2.core-features/2.variables",{"title":44,"path":45,"stem":46,"icon":47},"Comment","/core-features/comment","2.core-features/3.comment","i-lucide-hash",{"title":49,"path":50,"stem":51,"icon":24},"Conditionals","/core-features/conditionals","2.core-features/4.conditionals",{"title":53,"path":54,"stem":55,"icon":24},"Loops","/core-features/loops","2.core-features/5.loops",{"title":57,"path":58,"stem":59,"icon":24},"Functions","/core-features/functions","2.core-features/6.functions",{"title":61,"path":62,"stem":63,"icon":24},"Pointers","/core-features/pointers","2.core-features/7.pointers",{"title":65,"path":66,"stem":67,"icon":24},"Data types","/core-features/datatypes","2.core-features/8.datatypes",{"title":69,"path":70,"stem":71,"icon":72},"Operators","/core-features/operators","2.core-features/9.operators","i-lucide-percent",{"title":74,"path":75,"stem":76,"icon":24},"Literals","/core-features/a.literals","2.core-features/a.literals",{"title":78,"path":79,"stem":80,"icon":24},"Keywords","/core-features/b.keywords","2.core-features/b.keywords",{"title":82,"icon":6,"path":83,"stem":84,"children":85,"page":6},"Features","/features","3.features",[86,90,94,98,102,106,110,114],{"title":87,"path":88,"stem":89,"icon":24},"Const","/features/const","3.features/1.const",{"title":91,"path":92,"stem":93,"icon":24},"Define","/features/define","3.features/2.define",{"title":95,"path":96,"stem":97,"icon":24},"Enum","/features/enum","3.features/3.enum",{"title":99,"path":100,"stem":101,"icon":24},"Union","/features/union","3.features/4.union",{"title":103,"path":104,"stem":105,"icon":24},"Overloading","/features/overloading","3.features/5.overloading",{"title":107,"path":108,"stem":109,"icon":24},"Lambda","/features/lambda","3.features/6.lambda",{"title":111,"path":112,"stem":113,"icon":24},"Callback","/features/callback","3.features/7.callback",{"title":115,"path":116,"stem":117,"icon":24},"Auto","/features/auto","3.features/8.auto",{"title":119,"icon":6,"path":120,"stem":121,"children":122,"page":6},"Advance Features","/advance","4.advance",[123,127,131,135,139,143],{"title":124,"path":125,"stem":126,"icon":24},"Generic Type","/advance/generic-type","4.advance/1.generic-type",{"title":128,"path":129,"stem":130,"icon":24},"Errors","/advance/error","4.advance/2.error",{"title":132,"path":133,"stem":134,"icon":24},"Annotation","/advance/annotation","4.advance/3.annotation",{"title":136,"path":137,"stem":138,"icon":24},"Variadic Function","/advance/variadic-func","4.advance/4.variadic-func",{"title":140,"path":141,"stem":142,"icon":24},"Module","/advance/module-interface","4.advance/5.module-interface",{"title":144,"path":145,"stem":146,"icon":24},"Operator Overloading","/advance/operator-overloading","4.advance/6.operator-overloading",{"title":148,"icon":6,"path":149,"stem":150,"children":151,"page":6},"Struct","/struct","5.struct",[152,155,159,163,167],{"title":148,"path":153,"stem":154,"icon":24},"/struct/struct","5.struct/1.struct",{"title":156,"path":157,"stem":158,"icon":24},"Methods","/struct/methods","5.struct/2.methods",{"title":160,"path":161,"stem":162,"icon":24},"Init/Deinit","/struct/init-deinit","5.struct/3.init-deinit",{"title":164,"path":165,"stem":166,"icon":24},"Encapsulation","/struct/encapsulation","5.struct/4.encapsulation",{"title":168,"path":169,"stem":170,"icon":24},"Static","/struct/static","5.struct/5.static",{"title":172,"icon":6,"path":173,"stem":174,"children":175,"page":6},"Data Structures","/data-structure","6.data-structure",[176,180],{"title":177,"path":178,"stem":179,"icon":24},"Array","/data-structure/array","6.data-structure/array",{"title":181,"path":182,"stem":183,"icon":24},"Structural Type","/data-structure/strutural-type","6.data-structure/strutural-type",{"title":185,"icon":6,"path":186,"stem":187,"children":188,"page":6},"Standard Libraries","/stdlib","7.stdlib",[189,194],{"title":190,"path":191,"stem":192,"icon":193},"stdlib","/stdlib/stdlib","7.stdlib/stdlib","i-lucide-library-big",{"title":195,"path":196,"stem":197,"icon":24},"syscall","/stdlib/syscall","7.stdlib/syscall",{"id":199,"title":140,"body":200,"description":2128,"extension":2129,"links":2130,"meta":2131,"navigation":2132,"path":141,"seo":2133,"stem":142,"__hash__":2134},"docs/4.advance/5.module-interface.md",{"type":201,"value":202,"toc":2119},"minimark",[203,208,221,346,470,474,484,537,623,727,733,745,749,752,806,854,958,981,985,988,998,1004,1117,1131,1189,1243,1326,1340,1348,1352,1402,1452,1490,1502,1505,1524,1528,1535,1577,1597,1600,1606,1679,1682,1748,1769,1773,1780,1865,1992,2000,2106,2115],[204,205,207],"h2",{"id":206},"modules","Modules",[209,210,211,212,216,217,220],"p",{},"Cambo uses module system to let programmers organize code into reusable, self-contained units. Each module\nis declared at the top of a file using ",[213,214,215],"code",{},"module"," keyword and can be imported into other files using ",[213,218,219],{},"import","\nkeyword.",[222,223,229],"pre",{"className":224,"code":225,"filename":226,"language":227,"meta":228,"style":228},"language-kh shiki shiki-themes material-theme-lighter one-light one-dark-pro","module math;\n\nint sum(int a, int b){\n  return a + b;\n}\n\nint square(int n){\n  return n * n;\n}\n","math.kh","kh","",[213,230,231,247,254,283,299,305,310,327,341],{"__ignoreMap":228},[232,233,236,239,243],"span",{"class":234,"line":235},"line",1,[232,237,215],{"class":238},"sQsOY",[232,240,242],{"class":241},"s8dPH"," math",[232,244,246],{"class":245},"sM89C",";\n",[232,248,250],{"class":234,"line":249},2,[232,251,253],{"emptyLinePlaceholder":252},true,"\n",[232,255,257,260,264,267,269,272,275,277,280],{"class":234,"line":256},3,[232,258,259],{"class":241},"int",[232,261,263],{"class":262},"spnjr"," sum",[232,265,266],{"class":245},"(",[232,268,259],{"class":241},[232,270,271],{"class":241}," a",[232,273,274],{"class":245},", ",[232,276,259],{"class":241},[232,278,279],{"class":241}," b",[232,281,282],{"class":245},"){\n",[232,284,286,289,291,295,297],{"class":234,"line":285},4,[232,287,288],{"class":238},"  return",[232,290,271],{"class":241},[232,292,294],{"class":293},"sB4Xn"," +",[232,296,279],{"class":241},[232,298,246],{"class":245},[232,300,302],{"class":234,"line":301},5,[232,303,304],{"class":245},"}\n",[232,306,308],{"class":234,"line":307},6,[232,309,253],{"emptyLinePlaceholder":252},[232,311,313,315,318,320,322,325],{"class":234,"line":312},7,[232,314,259],{"class":241},[232,316,317],{"class":262}," square",[232,319,266],{"class":245},[232,321,259],{"class":241},[232,323,324],{"class":241}," n",[232,326,282],{"class":245},[232,328,330,332,334,337,339],{"class":234,"line":329},8,[232,331,288],{"class":238},[232,333,324],{"class":241},[232,335,336],{"class":293}," *",[232,338,324],{"class":241},[232,340,246],{"class":245},[232,342,344],{"class":234,"line":343},9,[232,345,304],{"class":245},[222,347,350],{"className":224,"code":348,"filename":349,"language":227,"meta":228,"style":228},"import math;\n\nint main(string args[]){\n\n  int r1 = sum(1, 2);   // r1: 3 \n  int r2 = square(3);   // r2: 9\n\n  return 0;\n}\n","main.kh",[213,351,352,360,364,382,386,427,453,457,466],{"__ignoreMap":228},[232,353,354,356,358],{"class":234,"line":235},[232,355,219],{"class":238},[232,357,242],{"class":241},[232,359,246],{"class":245},[232,361,362],{"class":234,"line":249},[232,363,253],{"emptyLinePlaceholder":252},[232,365,366,368,371,373,376,379],{"class":234,"line":256},[232,367,259],{"class":241},[232,369,370],{"class":262}," main",[232,372,266],{"class":245},[232,374,375],{"class":238},"string",[232,377,378],{"class":241}," args",[232,380,381],{"class":245},"[]){\n",[232,383,384],{"class":234,"line":285},[232,385,253],{"emptyLinePlaceholder":252},[232,387,388,391,394,397,399,401,405,407,410,413,416,418,421,424],{"class":234,"line":301},[232,389,390],{"class":241},"  int",[232,392,393],{"class":241}," r1",[232,395,396],{"class":293}," =",[232,398,263],{"class":262},[232,400,266],{"class":245},[232,402,404],{"class":403},"sriKn","1",[232,406,274],{"class":245},[232,408,409],{"class":403},"2",[232,411,412],{"class":245},");   ",[232,414,415],{"class":293},"//",[232,417,393],{"class":241},[232,419,420],{"class":245},": ",[232,422,423],{"class":403},"3",[232,425,426],{"class":245}," \n",[232,428,429,431,434,436,438,440,442,444,446,448,450],{"class":234,"line":307},[232,430,390],{"class":241},[232,432,433],{"class":241}," r2",[232,435,396],{"class":293},[232,437,317],{"class":262},[232,439,266],{"class":245},[232,441,423],{"class":403},[232,443,412],{"class":245},[232,445,415],{"class":293},[232,447,433],{"class":241},[232,449,420],{"class":245},[232,451,452],{"class":403},"9\n",[232,454,455],{"class":234,"line":312},[232,456,253],{"emptyLinePlaceholder":252},[232,458,459,461,464],{"class":234,"line":329},[232,460,288],{"class":238},[232,462,463],{"class":403}," 0",[232,465,246],{"class":245},[232,467,468],{"class":234,"line":343},[232,469,304],{"class":245},[204,471,473],{"id":472},"interface","Interface",[209,475,476,477,479,480,483],{},"In the previous example, the module declaration and definition are in a single ",[213,478,226],{}," file. However,\nin many cases you may want to hide the moudule's implementation details. When the module is compiled into\na library, its internal symbols may no longer be visible to users, making it difficult for them to\nunderstand and explore the moudule's API.",[481,482],"br",{},"\nTherefore, you may want to separate the interface from the implementation so that you can expose only the\npublic API, and keep the internal logic private while providing a clear view of the module's available\nfunctionality.",[222,485,488],{"className":224,"code":486,"filename":487,"language":227,"meta":228,"style":228},"interface math;\n\nint sum(int a, int b);\nint square(int n);\n","math.khi",[213,489,490,498,502,523],{"__ignoreMap":228},[232,491,492,494,496],{"class":234,"line":235},[232,493,472],{"class":238},[232,495,242],{"class":241},[232,497,246],{"class":245},[232,499,500],{"class":234,"line":249},[232,501,253],{"emptyLinePlaceholder":252},[232,503,504,506,508,510,512,514,516,518,520],{"class":234,"line":256},[232,505,259],{"class":241},[232,507,263],{"class":262},[232,509,266],{"class":245},[232,511,259],{"class":241},[232,513,271],{"class":241},[232,515,274],{"class":245},[232,517,259],{"class":241},[232,519,279],{"class":241},[232,521,522],{"class":245},");\n",[232,524,525,527,529,531,533,535],{"class":234,"line":285},[232,526,259],{"class":241},[232,528,317],{"class":262},[232,530,266],{"class":245},[232,532,259],{"class":241},[232,534,324],{"class":241},[232,536,522],{"class":245},[222,538,539],{"className":224,"code":225,"filename":226,"language":227,"meta":228,"style":228},[213,540,541,549,553,573,585,589,593,607,619],{"__ignoreMap":228},[232,542,543,545,547],{"class":234,"line":235},[232,544,215],{"class":238},[232,546,242],{"class":241},[232,548,246],{"class":245},[232,550,551],{"class":234,"line":249},[232,552,253],{"emptyLinePlaceholder":252},[232,554,555,557,559,561,563,565,567,569,571],{"class":234,"line":256},[232,556,259],{"class":241},[232,558,263],{"class":262},[232,560,266],{"class":245},[232,562,259],{"class":241},[232,564,271],{"class":241},[232,566,274],{"class":245},[232,568,259],{"class":241},[232,570,279],{"class":241},[232,572,282],{"class":245},[232,574,575,577,579,581,583],{"class":234,"line":285},[232,576,288],{"class":238},[232,578,271],{"class":241},[232,580,294],{"class":293},[232,582,279],{"class":241},[232,584,246],{"class":245},[232,586,587],{"class":234,"line":301},[232,588,304],{"class":245},[232,590,591],{"class":234,"line":307},[232,592,253],{"emptyLinePlaceholder":252},[232,594,595,597,599,601,603,605],{"class":234,"line":312},[232,596,259],{"class":241},[232,598,317],{"class":262},[232,600,266],{"class":245},[232,602,259],{"class":241},[232,604,324],{"class":241},[232,606,282],{"class":245},[232,608,609,611,613,615,617],{"class":234,"line":329},[232,610,288],{"class":238},[232,612,324],{"class":241},[232,614,336],{"class":293},[232,616,324],{"class":241},[232,618,246],{"class":245},[232,620,621],{"class":234,"line":343},[232,622,304],{"class":245},[222,624,625],{"className":224,"code":348,"filename":349,"language":227,"meta":228,"style":228},[213,626,627,635,639,653,657,687,711,715,723],{"__ignoreMap":228},[232,628,629,631,633],{"class":234,"line":235},[232,630,219],{"class":238},[232,632,242],{"class":241},[232,634,246],{"class":245},[232,636,637],{"class":234,"line":249},[232,638,253],{"emptyLinePlaceholder":252},[232,640,641,643,645,647,649,651],{"class":234,"line":256},[232,642,259],{"class":241},[232,644,370],{"class":262},[232,646,266],{"class":245},[232,648,375],{"class":238},[232,650,378],{"class":241},[232,652,381],{"class":245},[232,654,655],{"class":234,"line":285},[232,656,253],{"emptyLinePlaceholder":252},[232,658,659,661,663,665,667,669,671,673,675,677,679,681,683,685],{"class":234,"line":301},[232,660,390],{"class":241},[232,662,393],{"class":241},[232,664,396],{"class":293},[232,666,263],{"class":262},[232,668,266],{"class":245},[232,670,404],{"class":403},[232,672,274],{"class":245},[232,674,409],{"class":403},[232,676,412],{"class":245},[232,678,415],{"class":293},[232,680,393],{"class":241},[232,682,420],{"class":245},[232,684,423],{"class":403},[232,686,426],{"class":245},[232,688,689,691,693,695,697,699,701,703,705,707,709],{"class":234,"line":307},[232,690,390],{"class":241},[232,692,433],{"class":241},[232,694,396],{"class":293},[232,696,317],{"class":262},[232,698,266],{"class":245},[232,700,423],{"class":403},[232,702,412],{"class":245},[232,704,415],{"class":293},[232,706,433],{"class":241},[232,708,420],{"class":245},[232,710,452],{"class":403},[232,712,713],{"class":234,"line":312},[232,714,253],{"emptyLinePlaceholder":252},[232,716,717,719,721],{"class":234,"line":329},[232,718,288],{"class":238},[232,720,463],{"class":403},[232,722,246],{"class":245},[232,724,725],{"class":234,"line":343},[232,726,304],{"class":245},[209,728,729,730,732],{},"Everything is the same as before, you just simply create a new file and use\nthe keyword ",[213,731,472],{}," to specify that it's a module interface of math.",[734,735,736,737,740,741,744],"note",{},"File extension of the interface is ",[213,738,739],{},".khi"," while its implementation file is ",[213,742,743],{},".kh"," as usual.",[204,746,748],{"id":747},"implementation-separation","Implementation Separation",[209,750,751],{},"If the module implementation seems too large to follow and maintain, you can also\nseparate the implementation into different files.",[222,753,756],{"className":224,"code":754,"filename":755,"language":227,"meta":228,"style":228},"module math;\n\nint sum(int a, int b){\n  return a + b;\n}\n","sum.kh",[213,757,758,766,770,790,802],{"__ignoreMap":228},[232,759,760,762,764],{"class":234,"line":235},[232,761,215],{"class":238},[232,763,242],{"class":241},[232,765,246],{"class":245},[232,767,768],{"class":234,"line":249},[232,769,253],{"emptyLinePlaceholder":252},[232,771,772,774,776,778,780,782,784,786,788],{"class":234,"line":256},[232,773,259],{"class":241},[232,775,263],{"class":262},[232,777,266],{"class":245},[232,779,259],{"class":241},[232,781,271],{"class":241},[232,783,274],{"class":245},[232,785,259],{"class":241},[232,787,279],{"class":241},[232,789,282],{"class":245},[232,791,792,794,796,798,800],{"class":234,"line":285},[232,793,288],{"class":238},[232,795,271],{"class":241},[232,797,294],{"class":293},[232,799,279],{"class":241},[232,801,246],{"class":245},[232,803,804],{"class":234,"line":301},[232,805,304],{"class":245},[222,807,810],{"className":224,"code":808,"filename":809,"language":227,"meta":228,"style":228},"module math;\n\nint square(int n){\n  return n * n;\n}\n","squre.kh",[213,811,812,820,824,838,850],{"__ignoreMap":228},[232,813,814,816,818],{"class":234,"line":235},[232,815,215],{"class":238},[232,817,242],{"class":241},[232,819,246],{"class":245},[232,821,822],{"class":234,"line":249},[232,823,253],{"emptyLinePlaceholder":252},[232,825,826,828,830,832,834,836],{"class":234,"line":256},[232,827,259],{"class":241},[232,829,317],{"class":262},[232,831,266],{"class":245},[232,833,259],{"class":241},[232,835,324],{"class":241},[232,837,282],{"class":245},[232,839,840,842,844,846,848],{"class":234,"line":285},[232,841,288],{"class":238},[232,843,324],{"class":241},[232,845,336],{"class":293},[232,847,324],{"class":241},[232,849,246],{"class":245},[232,851,852],{"class":234,"line":301},[232,853,304],{"class":245},[222,855,856],{"className":224,"code":348,"filename":349,"language":227,"meta":228,"style":228},[213,857,858,866,870,884,888,918,942,946,954],{"__ignoreMap":228},[232,859,860,862,864],{"class":234,"line":235},[232,861,219],{"class":238},[232,863,242],{"class":241},[232,865,246],{"class":245},[232,867,868],{"class":234,"line":249},[232,869,253],{"emptyLinePlaceholder":252},[232,871,872,874,876,878,880,882],{"class":234,"line":256},[232,873,259],{"class":241},[232,875,370],{"class":262},[232,877,266],{"class":245},[232,879,375],{"class":238},[232,881,378],{"class":241},[232,883,381],{"class":245},[232,885,886],{"class":234,"line":285},[232,887,253],{"emptyLinePlaceholder":252},[232,889,890,892,894,896,898,900,902,904,906,908,910,912,914,916],{"class":234,"line":301},[232,891,390],{"class":241},[232,893,393],{"class":241},[232,895,396],{"class":293},[232,897,263],{"class":262},[232,899,266],{"class":245},[232,901,404],{"class":403},[232,903,274],{"class":245},[232,905,409],{"class":403},[232,907,412],{"class":245},[232,909,415],{"class":293},[232,911,393],{"class":241},[232,913,420],{"class":245},[232,915,423],{"class":403},[232,917,426],{"class":245},[232,919,920,922,924,926,928,930,932,934,936,938,940],{"class":234,"line":307},[232,921,390],{"class":241},[232,923,433],{"class":241},[232,925,396],{"class":293},[232,927,317],{"class":262},[232,929,266],{"class":245},[232,931,423],{"class":403},[232,933,412],{"class":245},[232,935,415],{"class":293},[232,937,433],{"class":241},[232,939,420],{"class":245},[232,941,452],{"class":403},[232,943,944],{"class":234,"line":312},[232,945,253],{"emptyLinePlaceholder":252},[232,947,948,950,952],{"class":234,"line":329},[232,949,288],{"class":238},[232,951,463],{"class":403},[232,953,246],{"class":245},[232,955,956],{"class":234,"line":343},[232,957,304],{"class":245},[209,959,960,963,964,967,968,971,972,975,976,963,978,980],{},[213,961,962],{},"sum()"," and ",[213,965,966],{},"square()"," are now defined in two separate files, but as long as these\ntwo files has the line ",[213,969,970],{},"module math;",", they are considered to be the same\nmodule. And you can ",[213,973,974],{},"import math;"," to use the ",[213,977,962],{},[213,979,966],{}," just like before.",[204,982,984],{"id":983},"subodinate-module","Subodinate Module",[209,986,987],{},"A subordinate module is a module that exists within the scope of a parent module.\nInstead of separating the implementation, you group related functionality under\na common namespace while keeping the module hierarchy clear.",[989,990,991,995],"ul",{},[992,993,994],"li",{},"Parent module: top-level module that may contain muliple submodules.",[992,996,997],{},"Subordinate module: nested module, and also may have more children modules.",[209,999,1000,1001],{},"Here, we have module interface ",[1002,1003,487],"strong",{},[222,1005,1007],{"className":224,"code":1006,"filename":487,"language":227,"meta":228,"style":228},"interface math;\n\ninterface algebra{\n  float sqrt(float x);\n  float cbrt(float x);\n}\n\ninterface trigonometry{\n  float sin(float x);\n  float cos(float x);\n}\n",[213,1008,1009,1017,1021,1031,1049,1064,1068,1072,1081,1096,1112],{"__ignoreMap":228},[232,1010,1011,1013,1015],{"class":234,"line":235},[232,1012,472],{"class":238},[232,1014,242],{"class":241},[232,1016,246],{"class":245},[232,1018,1019],{"class":234,"line":249},[232,1020,253],{"emptyLinePlaceholder":252},[232,1022,1023,1025,1028],{"class":234,"line":256},[232,1024,472],{"class":238},[232,1026,1027],{"class":241}," algebra",[232,1029,1030],{"class":245},"{\n",[232,1032,1033,1036,1039,1041,1044,1047],{"class":234,"line":285},[232,1034,1035],{"class":241},"  float",[232,1037,1038],{"class":262}," sqrt",[232,1040,266],{"class":245},[232,1042,1043],{"class":241},"float",[232,1045,1046],{"class":241}," x",[232,1048,522],{"class":245},[232,1050,1051,1053,1056,1058,1060,1062],{"class":234,"line":301},[232,1052,1035],{"class":241},[232,1054,1055],{"class":262}," cbrt",[232,1057,266],{"class":245},[232,1059,1043],{"class":241},[232,1061,1046],{"class":241},[232,1063,522],{"class":245},[232,1065,1066],{"class":234,"line":307},[232,1067,304],{"class":245},[232,1069,1070],{"class":234,"line":312},[232,1071,253],{"emptyLinePlaceholder":252},[232,1073,1074,1076,1079],{"class":234,"line":329},[232,1075,472],{"class":238},[232,1077,1078],{"class":241}," trigonometry",[232,1080,1030],{"class":245},[232,1082,1083,1085,1088,1090,1092,1094],{"class":234,"line":343},[232,1084,1035],{"class":241},[232,1086,1087],{"class":262}," sin",[232,1089,266],{"class":245},[232,1091,1043],{"class":241},[232,1093,1046],{"class":241},[232,1095,522],{"class":245},[232,1097,1099,1101,1104,1106,1108,1110],{"class":234,"line":1098},10,[232,1100,1035],{"class":241},[232,1102,1103],{"class":262}," cos",[232,1105,266],{"class":245},[232,1107,1043],{"class":241},[232,1109,1046],{"class":241},[232,1111,522],{"class":245},[232,1113,1115],{"class":234,"line":1114},11,[232,1116,304],{"class":245},[989,1118,1119,1128],{},[992,1120,1121,963,1124,1127],{},[213,1122,1123],{},"algebra",[213,1125,1126],{},"trigonometry"," have now become math's submodules.",[992,1129,1130],{},"Each submodule must have its own implementation in a separate file;",[222,1132,1135],{"className":224,"code":1133,"filename":1134,"language":227,"meta":228,"style":228},"module math.algebra;\n\nfloat sqrt(float x) { # impl... }\nfloat cbrt(float x) { # impl... }\n","algebra.kh",[213,1136,1137,1150,1154,1173],{"__ignoreMap":228},[232,1138,1139,1141,1143,1146,1148],{"class":234,"line":235},[232,1140,215],{"class":238},[232,1142,242],{"class":241},[232,1144,1145],{"class":245},".",[232,1147,1123],{"class":241},[232,1149,246],{"class":245},[232,1151,1152],{"class":234,"line":249},[232,1153,253],{"emptyLinePlaceholder":252},[232,1155,1156,1158,1160,1162,1164,1166,1169],{"class":234,"line":256},[232,1157,1043],{"class":241},[232,1159,1038],{"class":262},[232,1161,266],{"class":245},[232,1163,1043],{"class":241},[232,1165,1046],{"class":241},[232,1167,1168],{"class":245},") { ",[232,1170,1172],{"class":1171},"seacL","# impl... }\n",[232,1174,1175,1177,1179,1181,1183,1185,1187],{"class":234,"line":285},[232,1176,1043],{"class":241},[232,1178,1055],{"class":262},[232,1180,266],{"class":245},[232,1182,1043],{"class":241},[232,1184,1046],{"class":241},[232,1186,1168],{"class":245},[232,1188,1172],{"class":1171},[222,1190,1193],{"className":224,"code":1191,"filename":1192,"language":227,"meta":228,"style":228},"module math.trigonometry;\n\nfloat sin(float x) { # impl... }\nfloat cos(float x) { # impl... }\n","trigonometry.kh",[213,1194,1195,1207,1211,1227],{"__ignoreMap":228},[232,1196,1197,1199,1201,1203,1205],{"class":234,"line":235},[232,1198,215],{"class":238},[232,1200,242],{"class":241},[232,1202,1145],{"class":245},[232,1204,1126],{"class":241},[232,1206,246],{"class":245},[232,1208,1209],{"class":234,"line":249},[232,1210,253],{"emptyLinePlaceholder":252},[232,1212,1213,1215,1217,1219,1221,1223,1225],{"class":234,"line":256},[232,1214,1043],{"class":241},[232,1216,1087],{"class":262},[232,1218,266],{"class":245},[232,1220,1043],{"class":241},[232,1222,1046],{"class":241},[232,1224,1168],{"class":245},[232,1226,1172],{"class":1171},[232,1228,1229,1231,1233,1235,1237,1239,1241],{"class":234,"line":285},[232,1230,1043],{"class":241},[232,1232,1103],{"class":262},[232,1234,266],{"class":245},[232,1236,1043],{"class":241},[232,1238,1046],{"class":241},[232,1240,1168],{"class":245},[232,1242,1172],{"class":1171},[222,1244,1246],{"className":224,"code":1245,"filename":349,"language":227,"meta":228,"style":228},"import math;\n\nint main(string args[]){\n\n  float r1 = sin(12);\n  float r2 = sqrt(4);\n\n  return;\n}\n",[213,1247,1248,1256,1260,1274,1278,1295,1312,1316,1322],{"__ignoreMap":228},[232,1249,1250,1252,1254],{"class":234,"line":235},[232,1251,219],{"class":238},[232,1253,242],{"class":241},[232,1255,246],{"class":245},[232,1257,1258],{"class":234,"line":249},[232,1259,253],{"emptyLinePlaceholder":252},[232,1261,1262,1264,1266,1268,1270,1272],{"class":234,"line":256},[232,1263,259],{"class":241},[232,1265,370],{"class":262},[232,1267,266],{"class":245},[232,1269,375],{"class":238},[232,1271,378],{"class":241},[232,1273,381],{"class":245},[232,1275,1276],{"class":234,"line":285},[232,1277,253],{"emptyLinePlaceholder":252},[232,1279,1280,1282,1284,1286,1288,1290,1293],{"class":234,"line":301},[232,1281,1035],{"class":241},[232,1283,393],{"class":241},[232,1285,396],{"class":293},[232,1287,1087],{"class":262},[232,1289,266],{"class":245},[232,1291,1292],{"class":403},"12",[232,1294,522],{"class":245},[232,1296,1297,1299,1301,1303,1305,1307,1310],{"class":234,"line":307},[232,1298,1035],{"class":241},[232,1300,433],{"class":241},[232,1302,396],{"class":293},[232,1304,1038],{"class":262},[232,1306,266],{"class":245},[232,1308,1309],{"class":403},"4",[232,1311,522],{"class":245},[232,1313,1314],{"class":234,"line":312},[232,1315,253],{"emptyLinePlaceholder":252},[232,1317,1318,1320],{"class":234,"line":329},[232,1319,288],{"class":238},[232,1321,246],{"class":245},[232,1323,1324],{"class":234,"line":343},[232,1325,304],{"class":245},[989,1327,1328,1333],{},[992,1329,1330,1332],{},[213,1331,974],{}," will import everything including nested mudules.",[992,1334,1335,1336,1339],{},"But if you do ",[213,1337,1338],{},"import math.trigonometry",", this will only import the trigonometry\nsubmodule of math.",[222,1341,1346],{"className":1342,"code":1344,"language":1345},[1343],"language-text","import math.trignometry;\n\nint main(string args[]){\n\n  float r1 = sin(3.4); // OK\n  float r2 = sqrt(4);  // Error: sqrt() not found!\n\n  return 0;\n}\n","text",[213,1347,1344],{"__ignoreMap":228},[204,1349,1351],{"id":1350},"separating-submodule-interfaces","Separating Submodule Interfaces",[222,1353,1356],{"className":224,"code":1354,"filename":1355,"language":227,"meta":228,"style":228},"interface math.trigonometry;\n\nfloat sin(float x);\nfloat cos(float x);\n","trigonometry.khi",[213,1357,1358,1370,1374,1388],{"__ignoreMap":228},[232,1359,1360,1362,1364,1366,1368],{"class":234,"line":235},[232,1361,472],{"class":238},[232,1363,242],{"class":241},[232,1365,1145],{"class":245},[232,1367,1126],{"class":241},[232,1369,246],{"class":245},[232,1371,1372],{"class":234,"line":249},[232,1373,253],{"emptyLinePlaceholder":252},[232,1375,1376,1378,1380,1382,1384,1386],{"class":234,"line":256},[232,1377,1043],{"class":241},[232,1379,1087],{"class":262},[232,1381,266],{"class":245},[232,1383,1043],{"class":241},[232,1385,1046],{"class":241},[232,1387,522],{"class":245},[232,1389,1390,1392,1394,1396,1398,1400],{"class":234,"line":285},[232,1391,1043],{"class":241},[232,1393,1103],{"class":262},[232,1395,266],{"class":245},[232,1397,1043],{"class":241},[232,1399,1046],{"class":241},[232,1401,522],{"class":245},[222,1403,1406],{"className":224,"code":1404,"filename":1405,"language":227,"meta":228,"style":228},"interface math.algebra;\n\nfloat sqrt(float x);\nfloat cbrt(float x);\n","algebra.khi",[213,1407,1408,1420,1424,1438],{"__ignoreMap":228},[232,1409,1410,1412,1414,1416,1418],{"class":234,"line":235},[232,1411,472],{"class":238},[232,1413,242],{"class":241},[232,1415,1145],{"class":245},[232,1417,1123],{"class":241},[232,1419,246],{"class":245},[232,1421,1422],{"class":234,"line":249},[232,1423,253],{"emptyLinePlaceholder":252},[232,1425,1426,1428,1430,1432,1434,1436],{"class":234,"line":256},[232,1427,1043],{"class":241},[232,1429,1038],{"class":262},[232,1431,266],{"class":245},[232,1433,1043],{"class":241},[232,1435,1046],{"class":241},[232,1437,522],{"class":245},[232,1439,1440,1442,1444,1446,1448,1450],{"class":234,"line":285},[232,1441,1043],{"class":241},[232,1443,1055],{"class":262},[232,1445,266],{"class":245},[232,1447,1043],{"class":241},[232,1449,1046],{"class":241},[232,1451,522],{"class":245},[222,1453,1455],{"className":224,"code":1454,"filename":487,"language":227,"meta":228,"style":228},"interface math;\n\nimport interface algebra;\nimport interface trigonometry;\n",[213,1456,1457,1465,1469,1480],{"__ignoreMap":228},[232,1458,1459,1461,1463],{"class":234,"line":235},[232,1460,472],{"class":238},[232,1462,242],{"class":241},[232,1464,246],{"class":245},[232,1466,1467],{"class":234,"line":249},[232,1468,253],{"emptyLinePlaceholder":252},[232,1470,1471,1473,1476,1478],{"class":234,"line":256},[232,1472,219],{"class":238},[232,1474,1475],{"class":238}," interface",[232,1477,1027],{"class":241},[232,1479,246],{"class":245},[232,1481,1482,1484,1486,1488],{"class":234,"line":285},[232,1483,219],{"class":238},[232,1485,1475],{"class":238},[232,1487,1078],{"class":241},[232,1489,246],{"class":245},[989,1491,1492],{},[992,1493,1494,1495,1498,1499,1145],{},"The compiler will try to look for any files that have ",[213,1496,1497],{},"interface math.algebra"," and\n",[213,1500,1501],{},"interface math.trignometry;",[209,1503,1504],{},"The implementation will be the same as we did in a single file.",[989,1506,1507,1516],{},[992,1508,1509,1512,1513],{},[1002,1510,1511],{},"algebra_impl.kh"," must have ",[213,1514,1515],{},"module math.algebra;",[992,1517,1518,1512,1521],{},[1002,1519,1520],{},"trigonometry_impl.kh",[213,1522,1523],{},"module math.trigonometry;",[204,1525,1527],{"id":1526},"namespace","Namespace",[209,1529,1530,1531,1534],{},"Modules do not have namespaces, you need to explicity specify ones by using the ",[213,1532,1533],{},"as"," keyword.",[222,1536,1538],{"className":224,"code":1537,"filename":487,"language":227,"meta":228,"style":228},"interface math as math;\n\nimport interface algebra;\nimport interface trigonometry;\n",[213,1539,1540,1553,1557,1567],{"__ignoreMap":228},[232,1541,1542,1544,1546,1549,1551],{"class":234,"line":235},[232,1543,472],{"class":238},[232,1545,242],{"class":241},[232,1547,1548],{"class":238}," as",[232,1550,242],{"class":241},[232,1552,246],{"class":245},[232,1554,1555],{"class":234,"line":249},[232,1556,253],{"emptyLinePlaceholder":252},[232,1558,1559,1561,1563,1565],{"class":234,"line":256},[232,1560,219],{"class":238},[232,1562,1475],{"class":238},[232,1564,1027],{"class":241},[232,1566,246],{"class":245},[232,1568,1569,1571,1573,1575],{"class":234,"line":285},[232,1570,219],{"class":238},[232,1572,1475],{"class":238},[232,1574,1078],{"class":241},[232,1576,246],{"class":245},[209,1578,1579,1580,1583,1584,1586,1587,1589,1590,1592,1593,1596],{},"The entire module now has a namespace as ",[213,1581,1582],{},"math",", so you have to explictly use prefix ",[213,1585,1582],{}," followed by a ",[213,1588,1145],{}," to access the function you want to use. ",[481,1591],{},"\nThe entire module system including sub-modules shares only one namespace, the name of top module. This mean that no matter how nested the module is, you just write ",[213,1594,1595],{},"math."," followed by the function name.",[734,1598,1599],{},"The system is nearly similar to header files in C/C++ but in a clean way.",[209,1601,1602,1603,1605],{},"You can also use ",[213,1604,1533],{}," to give a new namespace to a module you like for a modole when importing it.",[222,1607,1609],{"className":224,"code":1608,"filename":349,"language":227,"meta":228,"style":228},"import math as m;\n\nint main(string args[]){\n\n  m.cos(12); \n\n  return 0;\n}\n",[213,1610,1611,1624,1628,1642,1646,1663,1667,1675],{"__ignoreMap":228},[232,1612,1613,1615,1617,1619,1622],{"class":234,"line":235},[232,1614,219],{"class":238},[232,1616,242],{"class":241},[232,1618,1548],{"class":238},[232,1620,1621],{"class":241}," m",[232,1623,246],{"class":245},[232,1625,1626],{"class":234,"line":249},[232,1627,253],{"emptyLinePlaceholder":252},[232,1629,1630,1632,1634,1636,1638,1640],{"class":234,"line":256},[232,1631,259],{"class":241},[232,1633,370],{"class":262},[232,1635,266],{"class":245},[232,1637,375],{"class":238},[232,1639,378],{"class":241},[232,1641,381],{"class":245},[232,1643,1644],{"class":234,"line":285},[232,1645,253],{"emptyLinePlaceholder":252},[232,1647,1648,1651,1653,1656,1658,1660],{"class":234,"line":301},[232,1649,1650],{"class":241},"  m",[232,1652,1145],{"class":245},[232,1654,1655],{"class":262},"cos",[232,1657,266],{"class":245},[232,1659,1292],{"class":403},[232,1661,1662],{"class":245},"); \n",[232,1664,1665],{"class":234,"line":307},[232,1666,253],{"emptyLinePlaceholder":252},[232,1668,1669,1671,1673],{"class":234,"line":312},[232,1670,288],{"class":238},[232,1672,463],{"class":403},[232,1674,246],{"class":245},[232,1676,1677],{"class":234,"line":329},[232,1678,304],{"class":245},[209,1680,1681],{},"Or completely remove the namespace:",[222,1683,1685],{"className":224,"code":1684,"filename":349,"language":227,"meta":228,"style":228},"import math as *;\n\nint main(string args[]){\n\n  cos(12);\n\n  return 0;\n}\n",[213,1686,1687,1699,1703,1717,1721,1732,1736,1744],{"__ignoreMap":228},[232,1688,1689,1691,1693,1695,1697],{"class":234,"line":235},[232,1690,219],{"class":238},[232,1692,242],{"class":241},[232,1694,1548],{"class":238},[232,1696,336],{"class":293},[232,1698,246],{"class":245},[232,1700,1701],{"class":234,"line":249},[232,1702,253],{"emptyLinePlaceholder":252},[232,1704,1705,1707,1709,1711,1713,1715],{"class":234,"line":256},[232,1706,259],{"class":241},[232,1708,370],{"class":262},[232,1710,266],{"class":245},[232,1712,375],{"class":238},[232,1714,378],{"class":241},[232,1716,381],{"class":245},[232,1718,1719],{"class":234,"line":285},[232,1720,253],{"emptyLinePlaceholder":252},[232,1722,1723,1726,1728,1730],{"class":234,"line":301},[232,1724,1725],{"class":262},"  cos",[232,1727,266],{"class":245},[232,1729,1292],{"class":403},[232,1731,522],{"class":245},[232,1733,1734],{"class":234,"line":307},[232,1735,253],{"emptyLinePlaceholder":252},[232,1737,1738,1740,1742],{"class":234,"line":312},[232,1739,288],{"class":238},[232,1741,463],{"class":403},[232,1743,246],{"class":245},[232,1745,1746],{"class":234,"line":329},[232,1747,304],{"class":245},[209,1749,1750,1751,1754,1755,1757,1758,1760,1761,1764,1765,1768],{},"if a module is imported as ",[213,1752,1753],{},"*",", the module will be visible to the current scope without requiring the namespace ",[213,1756,1582],{},".\nnote::\nThe prefix ",[213,1759,1582],{}," is optional, meaning that you can either use it or not. For example ",[213,1762,1763],{},"math.cos(12)"," & ",[213,1766,1767],{},"cos(12)"," is no different.\n::",[204,1770,1772],{"id":1771},"selective-importing","Selective Importing",[209,1774,1775,1776,1779],{},"Similar to importing the submodule such as ",[213,1777,1778],{},"import math.trigonometry;",",\nselective import allows you to only import a particular functionality from a module and its modules if\nexist.",[222,1781,1783],{"className":224,"code":1782,"filename":487,"language":227,"meta":228,"style":228},"interface math;\n\nstruct Vect2{\n  // ...\n};\n\ninterface trigonometry{\n  float sin(float x);\n  float cos(flost x); \n}\n",[213,1784,1785,1793,1797,1807,1815,1820,1824,1832,1846,1861],{"__ignoreMap":228},[232,1786,1787,1789,1791],{"class":234,"line":235},[232,1788,472],{"class":238},[232,1790,242],{"class":241},[232,1792,246],{"class":245},[232,1794,1795],{"class":234,"line":249},[232,1796,253],{"emptyLinePlaceholder":252},[232,1798,1799,1802,1805],{"class":234,"line":256},[232,1800,1801],{"class":238},"struct",[232,1803,1804],{"class":241}," Vect2",[232,1806,1030],{"class":245},[232,1808,1809,1812],{"class":234,"line":285},[232,1810,1811],{"class":293},"  //",[232,1813,1814],{"class":245}," ...\n",[232,1816,1817],{"class":234,"line":301},[232,1818,1819],{"class":245},"};\n",[232,1821,1822],{"class":234,"line":307},[232,1823,253],{"emptyLinePlaceholder":252},[232,1825,1826,1828,1830],{"class":234,"line":312},[232,1827,472],{"class":238},[232,1829,1078],{"class":241},[232,1831,1030],{"class":245},[232,1833,1834,1836,1838,1840,1842,1844],{"class":234,"line":329},[232,1835,1035],{"class":241},[232,1837,1087],{"class":262},[232,1839,266],{"class":245},[232,1841,1043],{"class":241},[232,1843,1046],{"class":241},[232,1845,522],{"class":245},[232,1847,1848,1850,1852,1854,1857,1859],{"class":234,"line":343},[232,1849,1035],{"class":241},[232,1851,1103],{"class":262},[232,1853,266],{"class":245},[232,1855,1856],{"class":241},"flost",[232,1858,1046],{"class":241},[232,1860,1662],{"class":245},[232,1862,1863],{"class":234,"line":1098},[232,1864,304],{"class":245},[222,1866,1868],{"className":224,"code":1867,"filename":349,"language":227,"meta":228,"style":228},"import math.Vect2;\nimport math.trigonometry.sin();\nimport math.trigonometry.cos();\n\n\nint main(string args[]){\n\n  Vect2 v = Vect(sin(12), cos(12));\n\n  return 0;\n}\n",[213,1869,1870,1883,1901,1917,1921,1925,1939,1943,1976,1980,1988],{"__ignoreMap":228},[232,1871,1872,1874,1876,1878,1881],{"class":234,"line":235},[232,1873,219],{"class":238},[232,1875,242],{"class":241},[232,1877,1145],{"class":245},[232,1879,1880],{"class":241},"Vect2",[232,1882,246],{"class":245},[232,1884,1885,1887,1889,1891,1893,1895,1898],{"class":234,"line":249},[232,1886,219],{"class":238},[232,1888,242],{"class":241},[232,1890,1145],{"class":245},[232,1892,1126],{"class":241},[232,1894,1145],{"class":245},[232,1896,1897],{"class":262},"sin",[232,1899,1900],{"class":245},"();\n",[232,1902,1903,1905,1907,1909,1911,1913,1915],{"class":234,"line":256},[232,1904,219],{"class":238},[232,1906,242],{"class":241},[232,1908,1145],{"class":245},[232,1910,1126],{"class":241},[232,1912,1145],{"class":245},[232,1914,1655],{"class":262},[232,1916,1900],{"class":245},[232,1918,1919],{"class":234,"line":285},[232,1920,253],{"emptyLinePlaceholder":252},[232,1922,1923],{"class":234,"line":301},[232,1924,253],{"emptyLinePlaceholder":252},[232,1926,1927,1929,1931,1933,1935,1937],{"class":234,"line":307},[232,1928,259],{"class":241},[232,1930,370],{"class":262},[232,1932,266],{"class":245},[232,1934,375],{"class":238},[232,1936,378],{"class":241},[232,1938,381],{"class":245},[232,1940,1941],{"class":234,"line":312},[232,1942,253],{"emptyLinePlaceholder":252},[232,1944,1945,1948,1951,1953,1956,1958,1960,1962,1964,1967,1969,1971,1973],{"class":234,"line":329},[232,1946,1947],{"class":241},"  Vect2",[232,1949,1950],{"class":241}," v",[232,1952,396],{"class":293},[232,1954,1955],{"class":262}," Vect",[232,1957,266],{"class":245},[232,1959,1897],{"class":262},[232,1961,266],{"class":245},[232,1963,1292],{"class":403},[232,1965,1966],{"class":245},"), ",[232,1968,1655],{"class":262},[232,1970,266],{"class":245},[232,1972,1292],{"class":403},[232,1974,1975],{"class":245},"));\n",[232,1977,1978],{"class":234,"line":343},[232,1979,253],{"emptyLinePlaceholder":252},[232,1981,1982,1984,1986],{"class":234,"line":1098},[232,1983,288],{"class":238},[232,1985,463],{"class":403},[232,1987,246],{"class":245},[232,1989,1990],{"class":234,"line":1114},[232,1991,304],{"class":245},[989,1993,1994],{},[992,1995,1996,1997,1145],{},"If it's a function, you must use suffix ",[213,1998,1999],{},"()",[222,2001,2003],{"className":224,"code":2002,"filename":349,"language":227,"meta":228,"style":228},"import math.Vect2;\nimport math.trigonometry.{ sin(), cos() };\n\nint main(string args[]){\n\n  Vect2 v = Vect(sin(12), cos(12));\n\n  return 0;\n}\n",[213,2004,2005,2017,2040,2044,2058,2062,2090,2094,2102],{"__ignoreMap":228},[232,2006,2007,2009,2011,2013,2015],{"class":234,"line":235},[232,2008,219],{"class":238},[232,2010,242],{"class":241},[232,2012,1145],{"class":245},[232,2014,1880],{"class":241},[232,2016,246],{"class":245},[232,2018,2019,2021,2023,2025,2027,2030,2032,2035,2037],{"class":234,"line":249},[232,2020,219],{"class":238},[232,2022,242],{"class":241},[232,2024,1145],{"class":245},[232,2026,1126],{"class":241},[232,2028,2029],{"class":245},".{ ",[232,2031,1897],{"class":262},[232,2033,2034],{"class":245},"(), ",[232,2036,1655],{"class":262},[232,2038,2039],{"class":245},"() };\n",[232,2041,2042],{"class":234,"line":256},[232,2043,253],{"emptyLinePlaceholder":252},[232,2045,2046,2048,2050,2052,2054,2056],{"class":234,"line":285},[232,2047,259],{"class":241},[232,2049,370],{"class":262},[232,2051,266],{"class":245},[232,2053,375],{"class":238},[232,2055,378],{"class":241},[232,2057,381],{"class":245},[232,2059,2060],{"class":234,"line":301},[232,2061,253],{"emptyLinePlaceholder":252},[232,2063,2064,2066,2068,2070,2072,2074,2076,2078,2080,2082,2084,2086,2088],{"class":234,"line":307},[232,2065,1947],{"class":241},[232,2067,1950],{"class":241},[232,2069,396],{"class":293},[232,2071,1955],{"class":262},[232,2073,266],{"class":245},[232,2075,1897],{"class":262},[232,2077,266],{"class":245},[232,2079,1292],{"class":403},[232,2081,1966],{"class":245},[232,2083,1655],{"class":262},[232,2085,266],{"class":245},[232,2087,1292],{"class":403},[232,2089,1975],{"class":245},[232,2091,2092],{"class":234,"line":312},[232,2093,253],{"emptyLinePlaceholder":252},[232,2095,2096,2098,2100],{"class":234,"line":329},[232,2097,288],{"class":238},[232,2099,463],{"class":403},[232,2101,246],{"class":245},[232,2103,2104],{"class":234,"line":343},[232,2105,304],{"class":245},[989,2107,2108],{},[992,2109,2110,2111,2114],{},"You can just wrap in ",[213,2112,2113],{},"{}"," to import in a single line without repeatition.",[2116,2117,2118],"style",{},"html pre.shiki code .sQsOY, html code.shiki .sQsOY{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#A626A4;--shiki-default-font-style:inherit;--shiki-dark:#C678DD;--shiki-dark-font-style:inherit}html pre.shiki code .s8dPH, html code.shiki .s8dPH{--shiki-light:#90A4AE;--shiki-default:#E45649;--shiki-dark:#E06C75}html pre.shiki code .sM89C, html code.shiki .sM89C{--shiki-light:#90A4AE;--shiki-default:#383A42;--shiki-dark:#ABB2BF}html pre.shiki code .spnjr, html code.shiki .spnjr{--shiki-light:#6182B8;--shiki-default:#4078F2;--shiki-dark:#61AFEF}html pre.shiki code .sB4Xn, html code.shiki .sB4Xn{--shiki-light:#39ADB5;--shiki-default:#383A42;--shiki-dark:#ABB2BF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sriKn, html code.shiki .sriKn{--shiki-light:#F76D47;--shiki-default:#986801;--shiki-dark:#D19A66}html pre.shiki code .seacL, html code.shiki .seacL{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#A0A1A7;--shiki-default-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic}",{"title":228,"searchDepth":249,"depth":249,"links":2120},[2121,2122,2123,2124,2125,2126,2127],{"id":206,"depth":249,"text":207},{"id":472,"depth":249,"text":473},{"id":747,"depth":249,"text":748},{"id":983,"depth":249,"text":984},{"id":1350,"depth":249,"text":1351},{"id":1526,"depth":249,"text":1527},{"id":1771,"depth":249,"text":1772},"Write your code as modules in different files.","md",null,{},{"icon":24},{"title":140,"description":2128},"DxLAZIIMoS6s_Cpq4Dr6vyPj0sNSIaAj7YuUVf3P_ns",[2136,2138],{"title":136,"path":137,"stem":138,"description":2137,"icon":24,"children":-1},"Define a function with dynamic parameters",{"title":144,"path":145,"stem":146,"description":2130,"icon":24,"children":-1},1774971230711]