Może się to wydawać możliwe, ale nie będzie to czysto funkcjonalne programowanie. Może to prowadzić do programowania imperatywnego.
Nie ma pytania, dlaczego miał na myśli możliwe programowanie funkcjonalne, o którym wspomniał Haylem. Oto on:
Zależy to od tego, co rozumiesz przez „programowanie funkcjonalne” i „możliwe”.
Programowanie funkcjonalne nie może mieć różnych definicji ani znaczenia, choć może mieć wiele wyjaśnień.
Podobnie jak OOP, możemy zapytać „co masz na myśli przez OOP?”.
Na pewno będzie wiele wyjaśnień, ale będzie to dotyczyło tylko jednego celu, celu OOP.
To samo dotyczy programowania funkcjonalnego .
Kiedy mówimy o znaczeniu funkcjonalnym, programy składają się z funkcji.
Rolą funkcji jest zwrócenie wartościowanego argumentu / parametru (argument jest zmienny, to wyrażenie pojawiło się podczas wywoływania funkcji, podczas gdy parametr jest zmienny, który jest częścią deklaracji funkcji).
Również funkcje zawsze zwracają ten sam wynik po przekazaniu tych samych argumentów. W ten sposób łatwiej jest unikać błędów lub debugować przyszłe błędy. Programując funkcjonalnie możemy uniknąć efektów ubocznych, takich jak modyfikacja zmiennej globalnej.
przykład w JavaScript:
function increment(lis){
return lis.map(
function (x){
return x+2;
}
);
}
var myList = [4, 7, 2, 3];
console.log(increment(myList));
console.log(myList);
Przyrost funkcji dodaje 1 wartość do każdego elementu wewnątrz obiektu i zwraca wynik. Wartość myList nie zmieniła się, ale kiedy wywołujemy funkcje, zauważyliśmy wartość dodaną do elementów tego obiektu.
Czy moja odpowiedź na pytanie Czy programowanie funkcjonalne jest możliwa w Javie? , Uważam, że nie jest możliwe posiadanie prawdziwego programowania funkcjonalnego w Javie. Ponieważ Java jest naprawdę zaprojektowana jako OOP, w której rozszerza imperatywne programowanie i poprawia ją w celu utrzymania. Gdy stan obiektu, zmiennej itp. Ulegnie zmianie, jest to już programowanie imperatywne.