خانه / راهنما
راهنما
از یک clone تا چیزی که اجرا میشود، در پنج گام.
شروع کار
بسازیدش
clone بگیرید، بعد CLI را کامپایل کنید. از -cc gcc استفاده کنید: بکاند C پیشفرض روی این checkout شکست میخورد، و CI از همان پرچم استفاده میکند تا نتوانند اختلاف داشته باشند.
git clone https://github.com/metif12/vlip cd vlip v -cc gcc -o vlip.exe vlip.v .\vlip.exe examples\01_basics.lipچیزی تعریف کنید
یک lambda فهرست پارامتر و بدنه میگیرد. define آن را میبندد. map آن را روی هر عضو میزند.
(define (square n) (* n n)) (map square [1 2 3 4]) ;=> (1 4 9 16)روی مقدار شاخه بزنید
cond بندها را به ترتیب میگیرد و بدنهٔ نخستین آزمون درست را اجرا میکند. بند else بقیه را میگیرد.
(define (fizzbuzz n) (cond [(= 0 (mod n 15)) "FizzBuzz"] [(= 0 (mod n 3)) "Fizz"] [(= 0 (mod n 5)) "Buzz"] [else n])) (map fizzbuzz (range 1 16))حلقهای بنویسید که حلقه نیست
یک تابع بازگشتی معمولی که فراخوانیاش در جایگاه دنبالهای است. پشتهٔ ادامه رشد نمیکند، پس عمق را بهجای پشته، حافظه محدود میکند.
(define (fold-left f init xs) (if (null? xs) init (fold-left f (f init (car xs)) (cdr xs)))) (fold-left + 0 [1 2 3 4 5]) ;=> 15یا از loop استفاده کنید
loop یک let نامدار است: خودش متغیر را جلو میبرد. همان فضای ثابت، با کمتر چیزی برای اشتباه.
; a sum loop needs no stack at all (define (sum-to n) (loop i 0 (<= i n) (set! n (- n i)))) (sum-to 1000000) ; runs in constant space
بعدش کجا
بهترین قدم بعدی پوشهٔ examples است. شش برنامه، و آنها مشخصاتی هستند که مفسر بر اساس آنها نوشته شده: اگر مفسر و یک نمونه اختلاف داشته باشند، یکی از آنها اشتباه است و معمولاً نمونه.
بعد از آن، نقشهٔ راه. آنچه شکسته است، چه چیزی بعدی است، و در چه ترتیبی باید اتفاق بیفتد را نام میبرد.
مشارکت
گزارش اشکال و pull request خوشآمدند، از جمله ترجمه. راهنمای مشارکت توضیح میدهد چطور بسازید، چطور آزمونها را اجرا کنید، و چیدمان شاخهها چگونه است.