[{"data":1,"prerenderedAt":897},["ShallowReactive",2],{"navigation_docs":3,"-advance-variadic-func":198,"-advance-variadic-func-surround":892},[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":136,"body":200,"description":885,"extension":886,"links":887,"meta":888,"navigation":889,"path":137,"seo":890,"stem":138,"__hash__":891},"docs/4.advance/4.variadic-func.md",{"type":201,"value":202,"toc":883},"minimark",[203,207,223,383,389,403,425,428,629,635,647,653,873,879],[204,205,206],"p",{},"A variadic function is a special function that can accecpt an arbitrary number of arguments. To write such a function, we need help from function overloading and compile-time annotation.",[204,208,209,213,214,218,219,222],{},[210,211,212],"strong",{},"Example:"," We're going to create a function called ",[215,216,217],"code",{},"simple_prinln"," that accepts a number of variables and print each one followed by a ",[215,220,221],{},"\\n",".",[224,225,230],"pre",{"className":226,"code":227,"language":228,"meta":229,"style":229},"language-kh shiki shiki-themes material-theme-lighter one-light one-dark-pro","@compile-time\nvoid simple_println(type... args[]){\n  \n  for(int8 i = 0; i \u003C len(args), i++){\n    print(\"{}\\n\", args[i]);\n  }\n  \n}\n","kh","",[215,231,232,252,278,284,332,366,372,377],{"__ignoreMap":229},[233,234,237,241,245,249],"span",{"class":235,"line":236},"line",1,[233,238,240],{"class":239},"sM89C","@",[233,242,244],{"class":243},"s8dPH","compile",[233,246,248],{"class":247},"sB4Xn","-",[233,250,251],{"class":243},"time\n",[233,253,255,259,263,266,269,272,275],{"class":235,"line":254},2,[233,256,258],{"class":257},"sQsOY","void",[233,260,262],{"class":261},"spnjr"," simple_println",[233,264,265],{"class":239},"(",[233,267,268],{"class":257},"type",[233,270,271],{"class":239},"... ",[233,273,274],{"class":243},"args",[233,276,277],{"class":239},"[]){\n",[233,279,281],{"class":235,"line":280},3,[233,282,283],{"class":239},"  \n",[233,285,287,290,292,295,298,301,305,308,311,314,317,319,321,324,326,329],{"class":235,"line":286},4,[233,288,289],{"class":257},"  for",[233,291,265],{"class":239},[233,293,294],{"class":257},"int8",[233,296,297],{"class":243}," i",[233,299,300],{"class":247}," =",[233,302,304],{"class":303},"sriKn"," 0",[233,306,307],{"class":239},"; ",[233,309,310],{"class":243},"i",[233,312,313],{"class":247}," \u003C",[233,315,316],{"class":261}," len",[233,318,265],{"class":239},[233,320,274],{"class":243},[233,322,323],{"class":239},"), ",[233,325,310],{"class":243},[233,327,328],{"class":247},"++",[233,330,331],{"class":239},"){\n",[233,333,335,338,340,344,348,351,353,356,358,361,363],{"class":235,"line":334},5,[233,336,337],{"class":261},"    print",[233,339,265],{"class":239},[233,341,343],{"class":342},"sVH1b","\"",[233,345,347],{"class":346},"spZWa","{}",[233,349,221],{"class":350},"scPpd",[233,352,343],{"class":342},[233,354,355],{"class":239},", ",[233,357,274],{"class":243},[233,359,360],{"class":239},"[",[233,362,310],{"class":243},[233,364,365],{"class":239},"]);\n",[233,367,369],{"class":235,"line":368},6,[233,370,371],{"class":239},"  }\n",[233,373,375],{"class":235,"line":374},7,[233,376,283],{"class":239},[233,378,380],{"class":235,"line":379},8,[233,381,382],{"class":239},"}\n",[204,384,385,386,388],{},"Similar to generic function, this compile-time ",[215,387,217],{}," is like a blueprint used to dynamically, at compile time, create concrete versions of function overloadings.",[204,390,391,392,395,396,399,400,402],{},"This syntax ",[215,393,394],{},"type... args[]"," only works with compile-time function, and it tells the compiler, when ",[215,397,398],{},"simple_println"," is called, to put all the arguments into an array-like named ",[215,401,274],{},", so you can process the arguments with the following properties:",[404,405,406,413,419],"ul",{},[407,408,409,412],"li",{},[215,410,411],{},"len(args)"," return the number of arguments passed in the function",[407,414,415,418],{},[215,416,417],{},"args[i]"," return the argument at index i",[407,420,421,424],{},[215,422,423],{},"type(args[i])"," return the type of the argument at index i",[204,426,427],{},"Next we're going to call this function and see what happens!",[224,429,431],{"className":226,"code":430,"language":228,"meta":229,"style":229},"@compile-time\nvoid simple_println(type... args[]){\n  \n  for(int8 i = 0; i \u003C len(args), i++){\n    print(\"{}\\n\", args[i]);\n  }\n  \n}\n\nint main(string args[]){\n\n  simple_println(\"hello, world\");\n  simple_println(\"hello\", 12, 3.14);\n\n  return 0;\n}\n",[215,432,433,443,459,463,497,521,525,529,533,540,559,564,582,608,613,624],{"__ignoreMap":229},[233,434,435,437,439,441],{"class":235,"line":236},[233,436,240],{"class":239},[233,438,244],{"class":243},[233,440,248],{"class":247},[233,442,251],{"class":243},[233,444,445,447,449,451,453,455,457],{"class":235,"line":254},[233,446,258],{"class":257},[233,448,262],{"class":261},[233,450,265],{"class":239},[233,452,268],{"class":257},[233,454,271],{"class":239},[233,456,274],{"class":243},[233,458,277],{"class":239},[233,460,461],{"class":235,"line":280},[233,462,283],{"class":239},[233,464,465,467,469,471,473,475,477,479,481,483,485,487,489,491,493,495],{"class":235,"line":286},[233,466,289],{"class":257},[233,468,265],{"class":239},[233,470,294],{"class":257},[233,472,297],{"class":243},[233,474,300],{"class":247},[233,476,304],{"class":303},[233,478,307],{"class":239},[233,480,310],{"class":243},[233,482,313],{"class":247},[233,484,316],{"class":261},[233,486,265],{"class":239},[233,488,274],{"class":243},[233,490,323],{"class":239},[233,492,310],{"class":243},[233,494,328],{"class":247},[233,496,331],{"class":239},[233,498,499,501,503,505,507,509,511,513,515,517,519],{"class":235,"line":334},[233,500,337],{"class":261},[233,502,265],{"class":239},[233,504,343],{"class":342},[233,506,347],{"class":346},[233,508,221],{"class":350},[233,510,343],{"class":342},[233,512,355],{"class":239},[233,514,274],{"class":243},[233,516,360],{"class":239},[233,518,310],{"class":243},[233,520,365],{"class":239},[233,522,523],{"class":235,"line":368},[233,524,371],{"class":239},[233,526,527],{"class":235,"line":374},[233,528,283],{"class":239},[233,530,531],{"class":235,"line":379},[233,532,382],{"class":239},[233,534,536],{"class":235,"line":535},9,[233,537,539],{"emptyLinePlaceholder":538},true,"\n",[233,541,543,546,549,551,554,557],{"class":235,"line":542},10,[233,544,545],{"class":243},"int",[233,547,548],{"class":261}," main",[233,550,265],{"class":239},[233,552,553],{"class":257},"string",[233,555,556],{"class":243}," args",[233,558,277],{"class":239},[233,560,562],{"class":235,"line":561},11,[233,563,539],{"emptyLinePlaceholder":538},[233,565,567,570,572,574,577,579],{"class":235,"line":566},12,[233,568,569],{"class":261},"  simple_println",[233,571,265],{"class":239},[233,573,343],{"class":342},[233,575,576],{"class":346},"hello, world",[233,578,343],{"class":342},[233,580,581],{"class":239},");\n",[233,583,585,587,589,591,594,596,598,601,603,606],{"class":235,"line":584},13,[233,586,569],{"class":261},[233,588,265],{"class":239},[233,590,343],{"class":342},[233,592,593],{"class":346},"hello",[233,595,343],{"class":342},[233,597,355],{"class":239},[233,599,600],{"class":303},"12",[233,602,355],{"class":239},[233,604,605],{"class":303},"3.14",[233,607,581],{"class":239},[233,609,611],{"class":235,"line":610},14,[233,612,539],{"emptyLinePlaceholder":538},[233,614,616,619,621],{"class":235,"line":615},15,[233,617,618],{"class":257},"  return",[233,620,304],{"class":303},[233,622,623],{"class":239},";\n",[233,625,627],{"class":235,"line":626},16,[233,628,382],{"class":239},[204,630,631,632,634],{},"Since we call it twice with different arguments, the compiler will create two overloading versions of ",[215,633,398],{},":",[404,636,637,642],{},[407,638,639],{},[215,640,641],{},"simple_println(string)",[407,643,644],{},[215,645,646],{},"simple_println(string, int, float)",[204,648,649,650,652],{},"And the compiler will process the function and generate that two concrete versions of ",[215,651,398],{}," and below is the code to illustrate this:",[224,654,656],{"className":226,"code":655,"language":228,"meta":229,"style":229},"void simple_println(string arg0){\n  print(\"{}\\n\", arg0);\n}\n\nvoid simple_println(string arg0, int8 arg1, float16 arg2){\n  print(\"{}\\n\", arg0);\n  print(\"{}\\n\", arg1);\n  print(\"{}\\n\", arg2);\n}\n\nint main(string args[]){\n\n  simple_println(\"hello, world\");\n  simple_println(\"hello\", 12, 3.14);\n\n  return 0;\n}\n",[215,657,658,673,695,699,703,732,752,773,794,798,802,816,820,834,856,860,868],{"__ignoreMap":229},[233,659,660,662,664,666,668,671],{"class":235,"line":236},[233,661,258],{"class":257},[233,663,262],{"class":261},[233,665,265],{"class":239},[233,667,553],{"class":257},[233,669,670],{"class":243}," arg0",[233,672,331],{"class":239},[233,674,675,678,680,682,684,686,688,690,693],{"class":235,"line":254},[233,676,677],{"class":261},"  print",[233,679,265],{"class":239},[233,681,343],{"class":342},[233,683,347],{"class":346},[233,685,221],{"class":350},[233,687,343],{"class":342},[233,689,355],{"class":239},[233,691,692],{"class":243},"arg0",[233,694,581],{"class":239},[233,696,697],{"class":235,"line":280},[233,698,382],{"class":239},[233,700,701],{"class":235,"line":286},[233,702,539],{"emptyLinePlaceholder":538},[233,704,705,707,709,711,713,715,717,719,722,724,727,730],{"class":235,"line":334},[233,706,258],{"class":257},[233,708,262],{"class":261},[233,710,265],{"class":239},[233,712,553],{"class":257},[233,714,670],{"class":243},[233,716,355],{"class":239},[233,718,294],{"class":257},[233,720,721],{"class":243}," arg1",[233,723,355],{"class":239},[233,725,726],{"class":257},"float16",[233,728,729],{"class":243}," arg2",[233,731,331],{"class":239},[233,733,734,736,738,740,742,744,746,748,750],{"class":235,"line":368},[233,735,677],{"class":261},[233,737,265],{"class":239},[233,739,343],{"class":342},[233,741,347],{"class":346},[233,743,221],{"class":350},[233,745,343],{"class":342},[233,747,355],{"class":239},[233,749,692],{"class":243},[233,751,581],{"class":239},[233,753,754,756,758,760,762,764,766,768,771],{"class":235,"line":374},[233,755,677],{"class":261},[233,757,265],{"class":239},[233,759,343],{"class":342},[233,761,347],{"class":346},[233,763,221],{"class":350},[233,765,343],{"class":342},[233,767,355],{"class":239},[233,769,770],{"class":243},"arg1",[233,772,581],{"class":239},[233,774,775,777,779,781,783,785,787,789,792],{"class":235,"line":379},[233,776,677],{"class":261},[233,778,265],{"class":239},[233,780,343],{"class":342},[233,782,347],{"class":346},[233,784,221],{"class":350},[233,786,343],{"class":342},[233,788,355],{"class":239},[233,790,791],{"class":243},"arg2",[233,793,581],{"class":239},[233,795,796],{"class":235,"line":535},[233,797,382],{"class":239},[233,799,800],{"class":235,"line":542},[233,801,539],{"emptyLinePlaceholder":538},[233,803,804,806,808,810,812,814],{"class":235,"line":561},[233,805,545],{"class":243},[233,807,548],{"class":261},[233,809,265],{"class":239},[233,811,553],{"class":257},[233,813,556],{"class":243},[233,815,277],{"class":239},[233,817,818],{"class":235,"line":566},[233,819,539],{"emptyLinePlaceholder":538},[233,821,822,824,826,828,830,832],{"class":235,"line":584},[233,823,569],{"class":261},[233,825,265],{"class":239},[233,827,343],{"class":342},[233,829,576],{"class":346},[233,831,343],{"class":342},[233,833,581],{"class":239},[233,835,836,838,840,842,844,846,848,850,852,854],{"class":235,"line":610},[233,837,569],{"class":261},[233,839,265],{"class":239},[233,841,343],{"class":342},[233,843,593],{"class":346},[233,845,343],{"class":342},[233,847,355],{"class":239},[233,849,600],{"class":303},[233,851,355],{"class":239},[233,853,605],{"class":303},[233,855,581],{"class":239},[233,857,858],{"class":235,"line":615},[233,859,539],{"emptyLinePlaceholder":538},[233,861,862,864,866],{"class":235,"line":626},[233,863,618],{"class":257},[233,865,304],{"class":303},[233,867,623],{"class":239},[233,869,871],{"class":235,"line":870},17,[233,872,382],{"class":239},[204,874,875,878],{},[210,876,877],{},"Example 2:"," In the 2nd example, we're going to explore more about this feature by",[880,881,882],"style",{},"html pre.shiki code .sM89C, html code.shiki .sM89C{--shiki-light:#90A4AE;--shiki-default:#383A42;--shiki-dark:#ABB2BF}html pre.shiki code .s8dPH, html code.shiki .s8dPH{--shiki-light:#90A4AE;--shiki-default:#E45649;--shiki-dark:#E06C75}html pre.shiki code .sB4Xn, html code.shiki .sB4Xn{--shiki-light:#39ADB5;--shiki-default:#383A42;--shiki-dark:#ABB2BF}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 .spnjr, html code.shiki .spnjr{--shiki-light:#6182B8;--shiki-default:#4078F2;--shiki-dark:#61AFEF}html pre.shiki code .sriKn, html code.shiki .sriKn{--shiki-light:#F76D47;--shiki-default:#986801;--shiki-dark:#D19A66}html pre.shiki code .sVH1b, html code.shiki .sVH1b{--shiki-light:#39ADB5;--shiki-default:#50A14F;--shiki-dark:#98C379}html pre.shiki code .spZWa, html code.shiki .spZWa{--shiki-light:#91B859;--shiki-default:#50A14F;--shiki-dark:#98C379}html pre.shiki code .scPpd, html code.shiki .scPpd{--shiki-light:#90A4AE;--shiki-default:#0184BC;--shiki-dark:#56B6C2}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);}",{"title":229,"searchDepth":254,"depth":254,"links":884},[],"Define a function with dynamic parameters","md",null,{},{"icon":24},{"title":136,"description":885},"bq_P5y1uKYGHjwLLPQJhn69ZMBWBN9Cg_hltrRrp7Gw",[893,895],{"title":132,"path":133,"stem":134,"description":894,"icon":24,"children":-1},"Additional metadata",{"title":140,"path":141,"stem":142,"description":896,"icon":24,"children":-1},"Write your code as modules in different files.",1774971230703]