Znalazłem w szafie zalegające książki, wszystkie w stanie jak nowe, chętnie sprzedam za ~60-70% ceny (niektore ceny amazon.pl są z czapy, więc lepiej sugerować się tymi z .com).

[tytuł - cena amazon.pl - cena amazon.com]

- Structure and Interpretation of Computer Programs Second Edition - Gerald Jay Sussman and Hal Abelson - 238zł - 49$
- An Introduction to Functional Programming Through Lambda Calculus - Greg Michaelson - 100zł - 26$
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Barok: Gdy rubel spadnie do 0,000000001 dolara to z łatwością można rozszerzyć skalę, tworząc kopię rejestru walut i zmieniając tam skalę dla USD do wielu miejsc po przecinku, a następnie korzystać z tego rejestru w obliczeniach. To jest use case giełdy wymiany walut, gdzie precyzja musi być większa niż określona jednostką zdawkową, np. centem czy groszem.

Przykład funkcji z mojego programu, która bierze sesję komunikacyjną (taka struktura asocjacyjna zawierająca m.in. pole currencies z bazą walut i dokonuje aktualizacji tej bazy na podstawie informacji z giełdy). W standardzie ISO waluta ma np. 2 miejsca po przecinku, ale giełda w danej parze rozlicza ją np. z użyciem 8 miejsc po przecinku. Symbol registry jest tu powiązany w wyrażeniu let z rezultatem wywołania funkcji reduce, która aktualizuje bazę względem tego, co jest na giełdzie:

(defn update-currencies
  "Uses current session to update currencies database for the API on
  • Odpowiedz
Cześć! Kilka dni temu wydałem pierwszą wersję biblioteki programistycznej Bankster dla języka #clojure. Jak wskazuje nazwa, służy ona do obsługi jednostek monetarnych i wartości pieniężnych. Można dodawać własne waluty i rejestry walut, a także wprowadzać tłumaczenia nazw i symboli zależne od ustawień językowych.

Początkowo miało mi to zająć 3 dni, a pochłonęło miesiąc. Pierwotnie chciałem korzystać z biblioteki Money od Clojurewerkz, która bazuje na javowej Joda Money. Niestety klasy w tej ostatniej są pozamykane, a twórca dopuszcza jedynie waluty zaaprobowane przez komitet ISO (a inne niż trzyliterowe kody walut są pewnie niezłą herezją). Po paru próbach przerabiania Joda Money, zmieniłem taktykę i zacząłem robić odrębnego liba, który zależy od BigDecimal, a nie jakiejś monetarnej biblioteki Javy.

Enjoy!
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@badsector: Kto rozumie syntax Clojure ten w cyrku się nie śmieje ( ͡° ͜ʖ ͡°) Chory język, swoją drogą czy on już nie umiera śmiercią naturalną na rzecz Scali?
  • Odpowiedz
Do składni idzie się szybko przyzwyczaić, to po prostu przeniesienie nawiasu, zamiast funkcja(a b) jest (funkcja a b).
Myślę, że ciężej przywyknąć do idiomów, że np. (seq x) sprawdza pustość, ale dla indeksowanych kolekcji lub z licznikiem elementów szybciej będzie (zero? (count x)). Jest też parę polimorficznych funkcji, jak conj, które zależnie od argumentu dają różne wyjścia, ale np. dla nil dają listę. Mi się Clojure podoba, bo ma clojure.spec i podobne.
  • Odpowiedz
mam trochę takie #przemyslenia dotyczące #programowanie a tak konkretnie to #programowaniefunkcyjne

temat jest mi bliski od dłuższego czasu. nie, nie czuję się ekspertem. ale jako że lubię eksperymentować napisałem kilka aplikacji w różnych językach funkcyjnych by "zobaczyć jak to będzie działać". myślę że sama nauka konceptów funkcyjnych pozwoliła mi inaczej pisać w językach imperatywnych. ale to truizmy.

kilka lat temu wydawało mi się, że #programowaniefunkcyjne przebija się do mainstreamu. miałem wrażenie, że było autentyczne zainteresowanie tym by się tego uczyć, opanować i zacząć uzywać. to był czas gdy z wielką uwagą przyglądałem się temu co się działo w świecie JavaScript:
- #react stawał się popularny (#angular 2+ nadal był w planach)
  • 26
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@secret_passenger: Dostawałem sporo faj nie wyglądających ofert z Monachium, Londynu, Holandii czasem Berlina, ale wszystko na miejscu, nawet częściowa praca zdalna (3 tyg. na miejscu, tydzień z domu) nie pasowała. Teraz jakoś mało ofert się pojawia i nic interesującego. Tylko jak mówiłem, sam nie szukam, opieram się na tym, co dostawałem.
  • Odpowiedz
@parmezan2004: ok. to ciekawe. ja w niszy Elixra np. widzę bardzo dużo ofert zdalnych, tak samo jak np. dla Rusta (tak, to nie jest fp). dziwi mnie zatem że Scala jest tak odmienna w tym temacie, ale może to wynika z nieco innej niszy w jakiej Scala zdobyła popularność? nie wiem.

w każdym razie mam nadzieję że teraz, szczególnie po zapowiedziach Zuckerberga, sytuacja zacznie zmieniać się na naszą korzyść.
  • Odpowiedz


Pod tagiem #devopsiarz (obserwuj lub czarnolistuj) publikuję od czasu do czasu informacje o ciekawych programach,
bibliotekach z działki #devops i nie tylko - najczęściej #golang i #python. Ponadto jakieś ciekawe linki z tego
gatunku do
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Kilka dni temu miałem okazję wystąpić na konferencji Security Case Study z podcastem na żywo. Poza artystycznym wstępem mówiłem o bieżących wydarzeniach w IT Sec (m.in. luce w Eximie, pozwie zbiorowym przeciwko FB), a także o Wujku Bobie i Clojure). Zapraszam do posłuchania:

https://randomseed.pl/pod/randompress/019/

#itsecurity #clojure #security #securitycasestudy #podcast #podcasty #wiadomosci #randompress #randomseed
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Miał ktoś doświadczenie w programowaniu w Clojure albo innym Lispie? Zainteresował mnie w nim REPL i całkowiecie inne podejście niż reszta języków ze składnią opartą na { }. A połączenie JVM z JS poprzez ClojureScript wydaje się ultimate rozwiązaniem pod WebDev.
#programowanie #clojure
  • 25
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 1
@ascalon: w przypadku vscode jest plugin o nazwie Calva, podobało mi się, że dowolna funkcja może być przetestowana przez repl z poziomu pluginu i wyświetlana obok kodu. W przypadku Clojurescript polecałbym rozejrzeć nad shadowcljs, który by spełniał zadanie jako narzędzie do budowania. Shadowcljs miał bardzo ok wsparcie dla ekosystemu npm w porównaniu do innych rozwiązań, kiedy ostatnio go używałem.
  • Odpowiedz
via Wykop Mobilny (Android)
  • 1
@ascalon: jak instalujesz pakiety? edytujesz config? jeśli tak to w większości powinieneś działać raczej na layerach.

Emacs odinstalowuje pakiety tylko jak czegoś nie ma w konfiguracji.

#!$%@? mnie takie wstawki jak "śmierdziel Stallman" i cała reszta głupot. nie chcesz - nie korzystaj. po co pisać takie głupoty? nikt Cię nie zmusza do Emacsa. używaj czego Ci wygodnie
  • Odpowiedz
#clojure #biblioteka #spec #prefix #suffix #infix #substring #deps #programowaniefunkcyjne

Popełniłem małą bibliotekę do Clojure na własny użytek, bo potrzebowałem szybkiego listowania przedrostków, wrostków i przyrostków w łańcuchach znakowych + paru innych funkcji.

Przy okazji funkcje są wyposażone w specyfikacje z użyciem spec i testy (z użyciem Midje), a zależności określone w deps.edn:

*
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Formbi: w Clojure trzeba specjalnie ustawiać kod i wołać recur, bo JVM nie obsługuje automatycznego wykrywania rekurencji ogonowej. No i tak, jak @bohater napisał, nie każdy problem da się rozwiązać rekurencją ogonową. Czasem wtedy da się dwoma lub kilkoma funkcjami, które się nawzajem wywołują – dla takich zastosowań w Clojure jest funkcja trampoline, ona też sprawia, że nie są odkładane ramki powrotu, ale nie od razu, tylko po zakończeniu
  • Odpowiedz