nix'da return degan tushuncha yo'q, u oxirgi statementni return qivoradi
# oddiy funksiya kirgan qiymatga +1 qilib return qivoradi,
arg: arg + 1
# add1 funksiyasi x argument olib unga +1 qo'shadi
let
add1 = x: x + 1;
in
# funksiyani chaqirish, 5 bu funksiyaga kiruvchi parametr
add1 5
# bir nechta argumentlar bilan
add = a: b: a + b;
# bu aslida
add = a: (b: a + b);
# ishlatish
(add 3) 4
# yoki qisqacha
let add = a: b: a + b;
in add 3 4
let
greet = { name, age }: "Salom ${name}, yosh ${toString age}";
in
greet { name = "Neo"; age = 24; }
toString bu age ni stringga o'tkazish, uchun, bu yerda object funksiyaga parametr bo'lib kiryapti, uni argument qilib olgan funksiya uni qayta ishlab qaytaryapti
greet = {name ? "Neo"}: "Salom ${name}";
# qiymatsiz chaqirishimiz mumkin
greet {} # -> Salom Neo
greet {name = "Odam";}; # -> Salom Odam
let
makeAdder = a: (b: a + b );
add10 = makeAdder 10;
in
add10 5
# Natija: 15
bunda makeAdder funksiya yaratilyapti va uni add10 o'zgaruvchi chaqiryapti 10 qiymati bilan in ichidagi add10 5 qiymatini qo'shib funksiyani chaqiryapti.
let
rec factorial = n:
if n <=1 then 1 else n * factorial (n - 1);
in
factorial 5
# Natija: 120
oldin ko'rganimizdek, rec orqali rekursiv qilinadi, shu orqali qiymatlar o'qiladi.
builtins.isFunction orqali qiymatini funksiya ekanligni tekshiramiz, boolean qaytaradi