Myślę, że powinieneś głęboko pomyśleć o tym, dlaczego chcesz korzystać z tej funkcji. Wydaje mi się, że wybór języka jest o wiele ważniejszy.
Mogę tylko myśleć o jednym możliwym znaczeniu słowa "operator" w tym kontekście, który jest po prostu cukrem syntaktycznym dla wywołania funkcji, np. foo + bar
zostanie przetłumaczone jako wywołanie funkcji +(a, b)
.
Jest to czasami przydatne, ale nie często. Mogę myśleć o bardzo niewielu przypadkach, w których przeciąłem/zdefiniowałem operatora.
Jak wspomniano w innych odpowiedziach, Haskell pozwala na definiowanie nowych operatorów infiksów. Jednak czysto funkcjonalny język z leniwą oceną może być odrobiną kęsa. Prawdopodobnie poleciłbym SML ponad Haskell, jeśli po raz pierwszy masz ochotę wypróbować funkcjonalny język. System typu jest nieco prostszy, można używać efektów ubocznych i nie jest on leniwy.
F # jest również bardzo interesujący, a także oferuje units of measure, który AFAIK jest unikalny dla tego języka. Jeśli potrzebujesz tej funkcji, może być nieoceniona.
W czołówce nie mogę wymyślić żadnych statycznie napisanych języków imperatywnych z operatorami infiksów, ale i tak możesz chcieć użyć języka funkcyjnego do programowania matematycznego, ponieważ znacznie łatwiej jest udowodnić fakty o funkcjonalności. program.
Możesz także chcieć utworzyć małe DSL, jeśli problemy z syntezą, takie jak operatory infiksów, są dla ciebie tak ważne. Następnie możesz napisać program w dowolnym języku i nadal określać matematykę w wygodny sposób.
Określanie "użytkownik". – Svante
"Operator" to dość dobrze zdefiniowany termin. –