Home
معرفی زبان کهربا
زبان کهربا یک پروژه آموزشی جهت نمایش نحوه کار یک زبان برنامه نویسی است هدف این زبان سادگی و انعطاف پذیری و راحتی استفاده است
نحوه استفاده از زبان کهربا
برای اجرای برنامه های به زبان کهربا لازم است برنامه خود را در فایلی با پسوند .krb یا .kahroba بسازید (مانند main.krb) و از خط فرمان برنامه را اجرا کنید:
همچنین میتوانید کهربا را از سورس کد بیلد بگیرید(به گیت و نسخه 1.19 گولنگ نیاز خواهید داشت) :
کامنت
کامنت ها در زبان کهربا با دو اسلش پشت هم شروع میشوند و خطی که کامنت در نظر گرفته شود پردازش نمی شود
// This is my first program in Kahroba programming language, Let's Rock!
تعریف رشته ها
رشته ها در زبان کهربا بین دو کوتیشن قرار میگیرند
دو رشته را توسط عملگر جمع میتوانید به هم متصل کنید در زبان کهربا میتوانید رشته ها را با اعداد جمع کنیداگر عملوند سمت چپ رشته باشد نتیجه رشته خواهد شد
اگر عملوند سمت چپ عدد باشد نتیجه عدد خواهد شد
مثال:
میتوان از کاراکترهای کنترلی درون رشته ها استفاده کرد
مثال:
خروجی:
تعریف متغیر
متغیرها در زبان کهربا تایپ ندارند و نحوه تعریف کردن اونها به شکل زیر است
آرایه
آرایه ها در زبان کهربا بسیار انعطاف پذیرند و میتوانید در آرایه دیتا تایپ های مختلفی را ذخیره کنید.
برای دسترسی به یک عنصر از آرایه به شکل زیر عمل میکنیم:مپ
مثل آرایه ، مپ هم در زبان کهربا از انعطاف بالایی برخوردار است و میتوانید هر نوع داده ای را درون مپ قرار دهید.
خروجی:len
به وسیله فانکشن len میتوانیم طول رشته، آرایه و مپ را بدست بیاوریم.
a = [1,2,3,4,5]
b = {"name":"kahroba"}
c = "Hello World"
println(len(a)) // 5
println(len(b)) // 1
println(len(c)) // 11
boolean
زبان کهربا از نوع boolean پشتیبانی میکند
a = true
b = false
!a // false
!b // true
a == b // false
a != b // true
true or false // true
true and false // false
چاپ در خروجی
به وسیله دستور print یا println میتوان عملیات چاپ در خروجی را انجام داد دستورات چاپ میتوانند چندین ورودی داشته باشند:
خروجی:گرفتن ورودی
به وسیله دستور input میتوان یک رشته را از کاربر به عنوان ورودی دریافت کرد:
تعریف فانکشن
فانکشن ها در زبان کهربا به وسیله کلمه کلیدی fn تعریف میشوند. فانکشن های میتوانند مقداری باز گردانند یا باز نگردانند. بصورت پیش فرض آخرین دستور یک فانکشن برگردانده میشود و استفاده از کلمه return اختیاری است
توابع میتوانند بصورت بازگشتی فراخوانی شوند. پیاده سازی مثال کلاسیک فاکتوریل: ورودی فانکشن میتواند از هر نوعی باشد حتی یک فانکشن دیگر:fn getName() {
"Kahroba"
}
fn hello(name) {
println("Hello ",name)
}
hello(getName())
خروجی:
Hello Kahroba
swap
توسط این فانکشن میتوانید مقدار دو متغیر را باهم عوض کنید
خروجیکنترل جریان برنامه
دستورات شرطی
به وسیله دستور if میتوان از دستورات شرطی استفاده کرد
همچین میتوان از دستور else برای زمان عدم صحت شرط استفاده کردحلقه تکرار
برای استفاده از حلقه در زبان کهربا از دستور for به شکل زیر استفاده میشود
خروجی:1
2
3
4
5
میتوانید تعداد گام های حلقه را به این شکل مشخص کنید:
خروجی:1
3
5
به وسیله حلقه for میتوانید به روی رشته ها، آرایه ها و مپ ها پیمایش انجام دهید
پیمایش رشته
خروجیپیمایش آرایه
خروجی
پیمایش مپ
data = {"name":"Kahroba","version":0.1}
for v in data {
println(v)
}
for k,v in data {
println(k,":",v)
}
فراخوانی فایل های کهربا خارجی
با استفاده از زبان کهربا همچنین می توانید از سایر فایل های .krb که به زبان کهربا نوشته شده است استفاده کنید.
تمامی فانکشن ها و متغیرهای تعریف شده در فایل helper.krb در اسکوپ جاری برنامه قابل دسترس خواند بود.
پیاده سازی الگوریتم quicksort توسط کهربا
fn qsort(arr) {
sort(arr,0,len(arr)-1)
}
fn sort(arr,l,r) {
if l < r {
q = partition(arr,l,r)
sort(arr,l,q-1)
sort(arr,q+1,r)
}
}
fn partition(arr,l,r) {
i = l
for j in l..r {
if a[j] < a[r] {
swap(a[i],a[j])
i = i + 1
}
}
swap(a[i],a[r])
i
}
a = [5,1,2,4,3,9,8,7,6,0]
println(a)
qsort(a)
println(a)