Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε τα βασικά των αρχών και των προσεγγίσεων της λειτουργικής προγραμματισμού;

sobes.tech AI

Απάντηση από AI

Ο λειτουργικός προγραμματισμός (FP) είναι ένα παράδειγμα προγραμματισμού που βασίζεται στη χρήση συναρτήσεων ως βασικών δομικών στοιχείων και στην αποφυγή αλλαγής της κατάστασης και των παρενεργειών.

Βασικές αρχές και προσεγγίσεις του FP:

  • Καθαρές συναρτήσεις: μια συνάρτηση επιστρέφει πάντα το ίδιο αποτέλεσμα για τα ίδια δεδομένα εισόδου και δεν αλλάζει την εξωτερική κατάσταση.
  • Αμεταβλητότητα (immutability): τα δεδομένα δεν αλλάζουν μετά τη δημιουργία τους, αντίθετα δημιουργούνται νέες αντίγραφα με αλλαγές.
  • Συναρτήσεις ανώτερου επιπέδου: συναρτήσεις που δέχονται άλλες συναρτήσεις ως επιχειρήματα ή τις επιστρέφουν.
  • Αναδρομή αντί για βρόχους: η αναδρομή χρησιμοποιείται συχνά για την επανάληψη λειτουργιών.
  • Απουσία παρενεργειών: οι συναρτήσεις δεν πρέπει να αλλάζουν εξωτερικές μεταβλητές, αρχεία, βάσεις δεδομένων κ.λπ.

Παράδειγμα σε C++ (χρησιμοποιώντας συναρτήσεις lambda):

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> αριθμοί = {1, 2, 3, 4, 5};
    
    // Συνάρτηση ανώτερου επιπέδου: περνάμε μια lambda στη std::for_each
    std::for_each(αριθμοί.begin(), αριθμοί.end(), [](int n) {
        std::cout << n * 2 << " ";
    });
    
    return 0;
}

Εδώ δεν αλλάζουμε το αρχικό διάνυσμα, απλώς εφαρμόζουμε μια συνάρτηση σε κάθε στοιχείο για εμφάνιση, που συμφωνεί με τις ιδέες της λειτουργικής προσέγγισης.