Sof funksional dasturlash tillari - bunday turdagi funksional tillar faqatgina funksional paradigmaga asosan ishlaydi. Masalan, Haskell tili shunday sof funksional til hisoblanadi.
Impure Functional Languages - bunday turdagi dasturlash tillari ham funksional ham, imperativ paradigmani qo’llab quvvatlaydi. Bunday tillardan biri LISP.
Funksional dasturlashning eng muhim xarakteristikalari quyidagicha:
Hisoblashlarni bajarish uchun shartli ifodalar va rekursiyalardan foydalaniladigan matematik funksiyalarga asosida funksional dasturlash tillari ishlab chiqilgan.
Funksional dasturlash yuqori tartibli funksiya va baholashning dangasa funksiyalarini qo’llab quvvatlaydi.
Funksional dasturlash tillari if-else va switch kabi shartli operatorlarni, sikl operatorlarini, oqimlarni boshqarish elementlarini qo’llab-quvvatlamaydi.
Obyektga yo’naltirilgan dasturlash kabi funksional dasturlash ham inkapsulyatsiya, polimorfizm, merosxo’rlik, abstraksiya kabi tushunchalarni qo’llab-quvvatlaydi.
Funksional dasturlash quyidagicha afzalliklarga ega:
Xatolarsiz kod yozish - funksional dasturlash holatli o’tishlarni qo’llab quvvatlamaydi, chunki yondosh effektlar yo’q va biz kodni xatosiz yozamiz.
Samarali parallel dasturlash-funksional tillar bir holatdan ikkinchi holatga o’tish uslubida ishlamaydi, shuning uchun ularda holatlar bilan bog’li xatolar yuzaga kelmaydi. “Funksiyalar”ni “buyruqlar” kabi parallel ishlashi uchun dasturlash mumkin.
Samaradorlik - Funksional dasturlar bir vaqtda ishlaydigan mustaqil bloklardan tashkil topishi mumkin. Bunday dasturlarning samaradorligi juda ham yuqori bo’ladi.
Ichma-ich joylashgan funksiyalarni qo’llab-quvvatlaydi - funksional dasturlash ichma-ich joylashgan funksiyalarni qo’llab-quvvatlaydi.