Wpis z mikrobloga

Widzę, że nuda w tagu, ciągle tylko "czy warto uczyć się tego?", "mam problem z tym".
A ja nie będę o nic pytał, tylko coś wam pokażę. Napisałem sobie dwie wersje drzewa binarnego z podstawowymi funkcjami - jedną w F#, drugą w C# i powiem jedno - z każdym dniem zaczynam się coraz bardziej przekonywać do zdania haskelowych freaków, że programowanie funkcyjne jest zajebiste. Nie dość, że kod w #fsharp jest zwięzły, to jeszcze zajebiście czytelny, o ile czai się trochę składnię (ja mam z F# kilkudziesięciominutowe doświadczenie więc naprawdę wystarczy trochę xD ).
Możecie też rozpętać shitstorm o mój kod w #csharp, który przeczy wszelkim konwencjom ( ͡° ͜ʖ ͡°)
#programowanie

PS.
#mono > #dotnet
  • 9
  • Odpowiedz
@o-o_i: Wiesz, no... Ameryki nie odkryłeś że w językach funkcyjnych łatwiej, szybciej i przyjemniej pisze się wszelkie rozwiązania związane ze strukturami danych i ich przetwarzaniem :P Każdy paradygmat ma swoje zastosowania.
  • Odpowiedz
@Luntri: Są w poście jak już wspomniano.
@Szab: Niby tak, ale zastanawia mnie jedna rzecz - czy za tę łatwość, szybkość i przyjemność nie trzeba czasem płacić dodatkową złożonością obliczeniową. Całkiem przyjemnie pisało mi się drzewo binarne, ale przy prostszym - mogłoby się wydawać - typie danych poległem. Próbowałem tak zaimplementować kolejkę FIFO, żeby i czas wstawiania, i czas zdejmowania był stały - jest to przecież możliwe. Przyszły
  • Odpowiedz
Niby tak, ale zastanawia mnie jedna rzecz - czy za tę łatwość, szybkość i przyjemność nie trzeba czasem płacić dodatkową złożonością obliczeniową.


@o-o_i: Powiedziałbym że jest to kwestia implementacji. Programując w F# bardzo często korzysta się z innego rodzaju danych (np. o wiele więcej immutable'i), a przede wszystkim korzysta się z paradygmatu funkcyjnego, gdzie naturalnie występuje więcej rekursji i złożonych wywołań. Z drugiej strony należy pamiętać, że zarówno pod C#
  • Odpowiedz
@Szab: O tym wiem, ale nie chodzi mi o to. Korzystając z gotowych .netowych klas można wszystko, można po prostu zaimportować kolejkę i już xD Mam na myśli to, że obawiam się, że ograniczenia, które narzucają języki funkcyjne stwarzają problemy z efektywną implementacją niektórych algorytmów / typów danych. Sprawdziłem sobie z ciekawości na stacku jak na tym polu zachowuje się haskell. Najwyżej punktowana odpowiedź (źródło tutaj) mówi, że albo
  • Odpowiedz