You have a point, but the mathematical approach of Haskell of different function cases is quite readable and straight forward. I only coded a little in Haskell and I know how to read it. I am not sure if you would consider Rust a functional language but they have pattern matching for function parameters but only you’re allowed to use one function signature unlike Haskell.
Sent from my iPhone > On 10 Aug 2021, at 10:53 AM, Steven D'Aprano <st...@pearwood.info> wrote: > > On Sun, Aug 08, 2021 at 11:30:20AM +0400, Abdulla Al Kathiri wrote: > >> For me, it looks normal because I am used to seeing pattern matching >> for function parameters in functional programming languages. > > Can you give us a few samples from other languages? The only one I know > is Haskell: > > fib 0 = 0 > fib 1 = 1 > fib n = fib (n-1) + fib (n-2) > > > I don't *hate* that in Haskell, because Haskell is meant to be read > almost as mathematical definitions. But Python functions are > declarative, and Python code consists of statements which are executed > in a defined order. I don't think that's a good match for Haskell-style > syntax. > > What's wrong with the straight-forward application of a match statement > inside the function body? As you suggest: > >> def fib(*args): >> match args: >> case 0, : return 0 >> case 1, : return 1 >> case int(n), : >> return fib(n-1) + fib(n-2) > > It costs one extra line (the match statement), but makes it explicit > what we're matching. And you save having to repeat the `def fib` for > every case. > > Most importantly, it means that we only need one kind of pattern > matching syntax, instead of two. > > -- > Steve > _______________________________________________ > Python-ideas mailing list -- python-ideas@python.org > To unsubscribe send an email to python-ideas-le...@python.org > https://mail.python.org/mailman3/lists/python-ideas.python.org/ > Message archived at > https://mail.python.org/archives/list/python-ideas@python.org/message/WCOU56EW37ZAC76GNICXR5NOWNNR6GRN/ > Code of Conduct: http://python.org/psf/codeofconduct/ _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/AZIFHKRXO5LT2FVY4JE7KOFMEOJFNSWU/ Code of Conduct: http://python.org/psf/codeofconduct/