Funkcionális programozás terminológia: emelő vs funktorhoz / applikatív emelő

szavazat
0

Írok egy funkcionális programozási könyvtár és próbálom eldönteni, hogy melyik név a legjobb egy sor funkciót.

A funkciók mind-mind a funkció és a visszaút másik funkció. A visszaadott függvénynek különböző visszatérési típus, mint a bemeneti funkció, de a paraméterek nem változtak.

Az implementációk:

  • <parameters> -> T|undefined=> <parameters> -> Option<T> Apidoc
  • <parameters> -> R|undefined <may throw>=> <parameters -> Either<L,R> Apidoc
  • <parameters> -> Promise<T>=> <parameters> -> Future<T>(Tervezi, hogy adjunk)

Van némi vita elnevezési és ez még folyamatban van az adattár én könyvtáram.

A kérdés az, hogy a „felvonó” terminológia a megfelelő a funkciókat, amit leírt.

Az ok, hogy miért nem lehet megfelelő, hogy az emelés leggyakrabban leírására használják emelés egy funktorhoz, azaz emelés mind paraméterek típusa és az eredmény típusát. Tehát .. A -> B -> Caz F<A> -> F<B> -> F<C>. Ami nem az, amit ezek a funkciók nem.

Ugyanakkor úgy látom, hogy a Scala használja a „emelő” terminológiát pontosan úgy, ahogy volt:

Meg akartam nézni, hogy hogyan nevezni ezt a scala-föld .. és kiderül ... Azt mondják, hogy felemeli, ha jól értem: Mi az „emelés” a Scala?

Emlékezz egy PartialFunction [A, B] egy függvény néhány részhalmazát a domain A (által meghatározott isDefinedAt módszer). Akkor felvonó a PartialFunction [A, B] egy függvény [A, Opció [B]]. Azaz, egy függvény az egész az A, de amelyek értéke típusú Opció [B]

Másrészt az emelési, ha minden paraméter felemelte mellett az eredmény, azt mondják:

„Felvonó” funkció A => B be a domain funktorhoz. [..] „emelő egy funktor”

Ez ott => https://www.scala-lang.org/api/current/scala/PartialFunction.html#lift:A=%3EOption[B]

Tehát ez azt jelenti, emelő egy általános fogalom, amelynek funktorhoz emelés csak egy alkategóriát. Továbbá, haskell beszél „emelte típusú” és „unlifted típusú”, ami arra utal, hogy a terminológiát használja a lazább módon.

Másrészt ez azt mondja, emelés csak „funktorhoz emelő”: https://stackoverflow.com/a/43596202/516188

Azt is kínál a „funktorhoz” emelés a saját könyvtárban, megnevezve a funkciók liftA2 és liftAp - s így a különbség a „emelés” és a „alkalmazó emelés”. Gondolod, hogy ez megfelelő-e? Ha nem, milyen elnevezést kíván ajánlani?

A kérdést 02/09/2018 05:32
a forrás felhasználó
Más nyelveken...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more