Nie można łatwo odrzucić żadnego zestawu problemów, który sam nie nadaje się do programowania funkcjonalnego.
Wiele zależy od faktycznego języka używanego do programowania funkcjonalnego i jego funkcji.
Jednym z przykładów jest wspomniany już Erlang dla systemów wbudowanych w czasie rzeczywistym.
Pełnia stanu również nie jest dobrym kryterium w stosunku do programowania funkcjonalnego, istnieje kilka skutecznych sposobów zaimplementowania w funkcjonalnych językach programowania, aby sobie z tym poradzić.
Często wymienia się także skutki uboczne w stosunku do programowania funkcjonalnego. Każdy program, który nie jest całkowicie solipsystyczny, ma skutki uboczne. Tak więc każdy język FP w świecie rzeczywistym ma jakiś sposób, aby sobie z tym poradzić, to tylko kwestia tego, jak elegancko ująć w skutki uboczne świata.
Nie ma potrzeby stosowania dowolnych efektów ubocznych, takich jak zmienne globalne.
Istnieją jednak zestawy problemów, które ułatwiają dostęp do programowania funkcjonalnego, ponieważ nie zmieniają tak dobrze twojego sposobu patrzenia na problem. Ale kiedy uda ci się pomyśleć, że funkcjonalne, coraz więcej zestawów problemów jest otwartych na mniej skutków ubocznych.
Nawet podczas programowania C zawsze dobrym pomysłem jest ograniczenie w jak największym stopniu arbitralnych skutków ubocznych, takich jak zmienne globalne.