Skip to content

Allow partial application #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Allow partial application #9

wants to merge 2 commits into from

Conversation

allgreed
Copy link
Contributor

No description provided.

@coveralls
Copy link

coveralls commented Oct 22, 2018

Pull Request Test Coverage Report for Build 26

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage remained the same at 100.0%

Totals Coverage Status
Change from base Build 25: 0.0%
Covered Lines: 12
Relevant Lines: 12

💛 - Coveralls

@typeofweb
Copy link
Owner

Ale dlaczego? :P

@allgreed
Copy link
Contributor Author

@mmiszy W tym momencie const x = polishPlurals('a', 'b', 'c') zwróci 'c' - wydaje mi się, że nie jest to oczekiwane zachowanie, ani tym bardziej sensowne zachowanie (bo mógłbym po prostu napisać const x = 'c' xD. Możnaby zwrócić undefined, natomiast ludzie się będą dziwić skąd undefined nagle. Dlatego wydaje mi się, że jeżeli nie psuje to aktualnej funkcjonalności (a nie psuje, jak widać po Travisie) to czemu by nie zwrócić funkcji, która oczekuje parametru liczbowego?

Mi taka składnia wydaje się intuicyjna do budowania komunikatów i pozwala na całkiem wygodną kompozycję, przykład z mojego skryptu wykorzystującego tę libkę:

const existPlural = polishPlurals("jest", "są", "jest");
const devicePlural = polishPlurals("urządzenie", "urządzenia", "urządzeń");

...

const existDeviceCountMessage = devices => `${existPlural(devices)} ${deviceCountMessage(devices)}`;

@typeofweb
Copy link
Owner

Ale dokładnie to samo zachowanie osiągniesz używając natywnego bind albo lodasha, więc nie widzę potrzeby powiększania tej biblioteki ogólnodostępnymi utilkami.
Co od liczby parametrów — każdy rozsądny cżłowiek używa TS, który nie pozwoli Ci wywołać funkcji z 3-parametrami :) Jeśli chodzi o czysty JS to można by dodać jakąś asercję, ale też nie widzę sensu.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants