Racket به نوعی زیرشاخهای از زبان برنامهنویسی Lisp است؛ زبانی که به خاطر جزئیات، قدرت و منحنی یادگیری دشوارش شهرت دارد اما با اینکه این زبان ویژگیهای کاربردی زبان لیسپ را حفظ کرده، در عین حال برنامهنویسان مبتدی را نیز مد نظر قرار داده است. این زبان برنامهنویسی به دولوپرها این امکان را میدهد تا کامپوننتهای نوشته شده با زبانهای دیگر را نیز در پروژههای خود ادغام کنند و در واقع دست برنامهنویسان را تا حد ممکن باز میگذارد.
برخلاف زبان لیسپ که شروع کار با آن و نوشتن یک برنامهٔ ساده با آن به میزان قابلتوجهی دانش برنامهنویسی نیاز دارد، شروع کدنویسی با زبان همهمنظوره و کراسپلتفرم راکت بسیار ساده است. در زیر نمونهٔ کوچکی از یک برنامهٔ نوشته شده با این زبان را میبینید:
;;;This program, taken from the Racket website, draws a Sierpinski triangle, nested to depth 8.
#lang racket
(require 2htdp/image)
(let sierpinski ([n 8])
(if (zero? n)
(triangle 2 'solid 'red)
(let ([t (sierpinski (- n 1))])
(freeze (above t (beside t t))))))
زبان Racket مجموعهای از ابزارهای مختلف را در اختیار دارد که از میان آنها میتوان به DrRacket اشاره کرد که یک IDE اختصاصی برای توسعهٔ اپلیکیشن با استفاده از این زبان است. سایر ابزارهای کاربردی این زبان نیز عبارتند از:
- Futures Visualizer
- Optimization Coach
- PLaneT
- Racklog
- RackUnit
- Redex
- Scribble
- Slideshow
یادگیری زبان Racket خیلی دشوار نیست به علاوه اینکه از مستندات نسبتاً کاملی است و به شما کمک میکند تا تکتک اجزای این زبان را به خوبی بشناسید و پیش از این گفتیم که راکت کراسپلتفرم است به طوری که برای سیستمهای ویندوز، لینوکس و مک در دسترس میباشد.
همانطور که در عنوان این مقاله مشخص است، یکی از قابلیتهای کلیدی Racket این است که ابزاری در اختیار برنامهنویسها میگذارد تا بتوانند بسته به نیاز خود، سینتکس این زبان را توسعه داده و قابلیتهای بیشتری به آن اضافه نمایند که این فیچر در نوع خود منحصربهفرد است.