#programowanie #programowaniefunkcyjne #fsharp #dotnet

Jakiś czas temu napisałem post, że nie lubię gdy metody w klasach mają side-effect i najlepiej jakby były "pure" (wiadomo - publiczne mogą zmieniać stan, ale najlepiej jakby jedna metoda zmieniał stan w możliwie-minimalnym stopniu).
Jakiś Mirek wtedy napisał o programowaniu funkcyjnym i dodam, że wcześniej kojarzyłem, że coś takiego istnieje, ale nie wiedziałem dokładnie z czym to się je, bo się
  • 20
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@LeopoldStuff: Przynajmniej jedna firma w Gdańsku eksperymentuje z F#, aczkolwiek nie wiem czy mają już jakiś produkcyjny kod. Ja z kolei piszę prawie wyłącznie w Scali i mam z tuzin produkcyjnych aplikacji w niej napisanych i jest bardzo dużo firm które jej używają. Także programowanie funkcyjne jak najbardziej istnieje również w praktyce :)
  • Odpowiedz
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
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
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
Jest tu ktoś od #fsharp?
Mam sekwencję , nazwijmy ją "x". Chcę w jednej linijce pobrać pierwszy obiekt (tzw. head) a potem zwrócić pewną wartość z obiektu.

Mam coś takiego:

let wartoscX = x |> Seq.head |>
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mam pytanie odnośnie F#:
W ramach zapoznawania się z tym językiem chciałbym utworzyć sobie prostą aplikację, która przetworzy dane z pliku XML i wyświetli dane w postaci wykresów. Doinstalowałem sobie wszystkie potrzebne narzędzia F# do Visual Studio 2015, z tym że nie bardzo teraz wiem jak taki projekt utworzyć.
Z projektów do utworzenia mam do wyboru tylko "Console Application" (w którym podejrzewam że nie będzie jak wyrenderować wykresów) oraz Library (które z
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie
Mirki mam problem, otoz chcialbym sobie troche we F# podłubać ale bez tego molocha jakim jest visual studio, chcialem uzyc atoma +ionide , lub vs code + ionide, aczkolwiek za cholery nie potrafie w jednym i w drugim skompilowac projektu (repl tj linijkowiec dziala ale chcialbym caly projekt zbudowac :< )

  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Hoff:
ref i := sa nie 'funkcyjne' ^^ . Twoj kod jest spoko, nie musisz na sile szukac rozwiazan funkcyjnych.

Natomiast sprobojmy to zmienic uzywajac rekurencji i operatora with ktory fajnie wspolgra jesli chodzi o tworzenie nowego recordu na bazie starego z nowa zmieniona wartoscia. Dzieki temu nie masz przypisani i mutacji stanu obiektu ale generowany ciagle nowy obiekt.

Inna ciekawostka, miast loopa uzylem rekurencji z matchem po kolekcji ( head::tail )
  • Odpowiedz
@Hoff: Mam jedynie doswiadczenie w laczeniu F# jako mniejsze techniczne moduliki do robienia np migracji danych. Nigdy nie robilem czegos co corowo byloby oparte na F#.

Problemem F# jest :
- learning curve - jest to inne podejscie i wymaga nowego rodzaju wiedzy i doswiadczenia.
- dostepnosc programistow - F# nie jest popularny i ciezej o programmera
- stawki dla programisty - F# owiec w LND zarabia 20-30% wiecej
  • Odpowiedz
Macie jakieś pomysły na program, aby się nauczyć f sharpa? Pierwsza piedziesiątka z project euler już rozwalona, ale kompletnie nie mam pojęcia jak zrobić krok do przodu i szukam pomysłu na przykładowy projekt.

#programowanie #fsharp #dotnet
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Hoff: Sztandarowym przykładem, który pokazuje Luca Bolognese (jeden z twórców F#) na swoich wykładach jest program pobierający kursy giełdowe z zewnętrznej witryny i pokazujący je na wykresach. Sam program jest całkiem krótki, ale jeśli nie widziałeś jego realizacji nigdzie w necie to możesz spróbować sobie coś takiego stworzyć.
  • Odpowiedz
@SwordPL: No właśnie pomysł jest o tyle ciekawy, że najpotrzebniejsze rzeczy są zrobione (build, nuget, testy), a jak czegoś brakuje to masz właściwie całego .NETa dostępnego, więc można cudować
  • Odpowiedz
  • 1
No duma mnie rozpiera, gdy zaczynam rozumiec #fsharp szkoda ze przed sama sesja...
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

ARM vs x86: Pathfinding benchmark of C++, D, Go, Nim, Ocaml, Common Lisp, Racket, C#, Java, Haskell, F#, Rust and Dart

Porównanie wydajności róƶnych języków programowania i ich implementacji na platformach x86 i ARM przy pomocy algorytmu wyszukiwania najdłuƶszej ścieƶki. Pomiędzy językami są lekkie zmiany w algorytmie, więc nawet pomijając QoI cięƶko je porównywać (chociaƶ C++ i D w ścisłej czołówce mnie cieszą)

  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@PsichiX: GC w pisaniu skrypto-podobnego kodu jest bardzo przydatny, alokacje są bardzo szybkie, a wielowątkowe generacyjne GC są wystarczająco wydajne (o ile nie wymuszamy odśmiecania kilka razy na sekundę jak w Minecrafcie).
  • Odpowiedz
#fsharp #programowanie

Przerabiam tutorial z F# i pojawiło się właśnie coś takiego jak "tuples". Wygląda jak tablice, tylko zamiast kanciastych klamerek, są nawiasy ( ͡º ͜ʖ͡º)

Nigdy nie widziałem czegoś takiego wcześniej w innych językach (albo o tym nie wiem ;P). Co to jest i czym się różni od tablic bądź list?
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

FunScript is a lightweight F# library that lets you rapidly develop single-page applications. You can connect to external data sources and call REST APIs with intellisense, produce dashboards using JavaScript visualization libraries and write asynchronous computations easily without explicit callbacks.

http://funscript.info/

#webdev #javascript #fsharp
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach