SOLID применим к ФП, и вообще к любой инженерной деятельности. Это набор принципов, которые, конечно, были изобретены в рамках ООП, но являются универсальными. Сам Дядя Боб, изобретатель SOLID, про это говорил в своем твиттере.
@cblp_su раскрыл их, но я добавлю, что принцип LSP - сформулирован слишком ограничительно, и правильнее было бы говорить не про объекты, подтипы, наследование и заменяемые экземпляры, а вообще про интерфейс и имплементацию. LSP не должен быть нарушен, если вы хотите подставить вместо одной имплементации другую, - это значит, что код, написанный относительно интерфейса, должен продолжать работать. Да, он будет выполнять задачу иначе, но он должен продолжить ее выполнять. Должен быть соблюден контракт, например - на отсутствие исключений при вызове метода интерфейса. Это справедливо и для ФП, просто наши интерфейсы принимают иную форму.