Wszystko
Wszystkie
Archiwum
#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ę tym nie interesowałem. No ale że
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ę tym nie interesowałem. No ale że
- konto usunięte
- 1021690019151491
- kapelusz
- interface
- Yahoo_
- +4 innych
- 3
@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 :)
Komentarz usunięty przez autora
- 8
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
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
- dieow
- FNwsk
- konto usunięte
- filip_k
- sceptyk-
- +3 innych
- 5
@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.
- 1
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# jak
#fsharp #programowanie #naukaprogramowania
Niby taka prosta rzecz, a utknąłem.
Chcę zawrzeć warunek w tym czymś co się nazywa pipe operator:
Jeśli messageLimits jest większe od zera, to zwróć "Seq.take messageLimits", jeśli jest równe zero, zwróć to co było bez żadnych zmian.
Próbowałem tak:
Niby taka prosta rzecz, a utknąłem.
Chcę zawrzeć warunek w tym czymś co się nazywa pipe operator:
member this.messageObjects:seq =
t.Descendants "p"
|> Seq.map (fun x -> x.InnerText())
|> JESLI MESSAGELIMITS > 0 TO ZWROC JEDNA SEKWENCJĘ, JEŚLI NIE, NIC NIE ZMIENIAJ
Jeśli messageLimits jest większe od zera, to zwróć "Seq.take messageLimits", jeśli jest równe zero, zwróć to co było bez żadnych zmian.
Próbowałem tak:
|> fun x ->
@SwordPL: Dobra, znalazłem rozwiązanie. Próbowałem tego, ale podkreślało mi na czerwono. Już nie podkreśla ( ͡° ʖ̯ ͡°)
@SwordPL: Testowałem, nawet jeśli liczba jest większa niż ilość elementów w sekwencji, to kod działa. Pytanie dlaczego zwraca w moim przypadku nic.
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:
Co mam wpisać w miejscu znaków zapytania, żeby uzyskać dostęp do obiektu którego pobrałem z sekwencji? Jest tu coś takiego w stylu "this.costam"?
#programowanie #januszeprogramowania
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 |> ???
Co mam wpisać w miejscu znaków zapytania, żeby uzyskać dostęp do obiektu którego pobrałem z sekwencji? Jest tu coś takiego w stylu "this.costam"?
#programowanie #januszeprogramowania
@Wunderwafel: let wartoscX = x |> Seq.head |> fun y -> y.costam
nie wiem, czy zadaiala, to moja pierwsza linijka w f# :P
nie wiem, czy zadaiala, to moja pierwsza linijka w f# :P
@Wunderwafel @Yahoo_: ale jeśli był by to seq, i w T było by:
a) pole costam : () -> string (zwraca lambde, a nie wartość),
b) costam to funkcja
to trzeba napisać fun y -> y.costam()
a) pole costam : () -> string (zwraca lambde, a nie wartość),
b) costam to funkcja
to trzeba napisać fun y -> y.costam()
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
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
- 2
@Wunderwafel:
1. Stwórz "Console Application"
2. Dodaj bibliotekę System.Windows.Forms
3. Podmień kod w pliku Program.fs na:
open System
open System.Windows.Forms
module Main =
let label =
let temp = new Label()
do temp.Text<- "Hello, World!"
temp
let form = new Form(Text = "First Window App")
form.Controls.Add(label)
Application.Run(form)
1. Stwórz "Console Application"
2. Dodaj bibliotekę System.Windows.Forms
3. Podmień kod w pliku Program.fs na:
open System
open System.Windows.Forms
module Main =
let label =
let temp = new Label()
do temp.Text<- "Hello, World!"
temp
let form = new Form(Text = "First Window App")
form.Controls.Add(label)
Application.Run(form)
@SystemHalted: Oczywiście że nie, ale jest duże prawdopodobieństwo że ludzie z #csharp będą wiedzieć o co chodzi
Poczynilem mini blog posta. Chetnie przyjme review kodu na klate ( link w poscie ).
http://www.mfranc.com/blog/simulating-microservices-using-f-and-suave/
#programowanie #fsharp
http://www.mfranc.com/blog/simulating-microservices-using-f-and-suave/
#programowanie #fsharp
- 1
#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 :< )
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 :< )
Popełniłem dość toporny kod w f#:
http://pastebin.com/k3miPUuE
Który ma zadanie odczytywać xmla:
http://pastebin.com/g5MxDE8s
Głównie chodzi mi o to, czy można zrobić odczyt xml do fsharpowych rekordów bardziej funkcyjnie? Ja użyłem referencji, co chyba nie za bardzo "fituje".
#fsharp #naukaprogramowania #programowanie #programowaniefunkcyjne
http://pastebin.com/k3miPUuE
Który ma zadanie odczytywać xmla:
http://pastebin.com/g5MxDE8s
Głównie chodzi mi o to, czy można zrobić odczyt xml do fsharpowych rekordów bardziej funkcyjnie? Ja użyłem referencji, co chyba nie za bardzo "fituje".
#fsharp #naukaprogramowania #programowanie #programowaniefunkcyjne
@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
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
@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 od C#
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 od C#
Można jakoś ustawić w visualstudio w czasie programowania w fsharpie, aby po zmianie nazwy elementu automatycznie poprawił wszystkie występujące w kodzie stare nazwy na nowe? Tak jak w csharpie jest.
#visualstudio #programowanie #fsharp
#visualstudio #programowanie #fsharp
@Hoff: jest jakiś resharper dla f#. W sensie wtyczka darmowa.
@Hoff: https://visualstudiogallery.msdn.microsoft.com/136b942e-9f2c-4c0b-8bac-86d774189cff może ktoś potomny potrzebować xD
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
#programowanie #fsharp #dotnet
- 2
@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ć.
@Hoff: Była taka książka, Functional Programming in F# bodajże, masa zadań
- 2
Korzystał ktoś? Jak się sprawdzało? Wygląda fajnie:
http://fsharp.github.io/FAKE/
#fsharp #csharp #programowanie
http://fsharp.github.io/FAKE/
#fsharp #csharp #programowanie
- 1
- 1
Mogę podesłać linka do tej prelekcji o 'literate programming'.
Przyznam szczerze, że jak zobaczyłem jak przyjemnie to wygląda, to pisanie takiego kodu jest całkiem niegłupim pomysłem (zwłaszcza w F#, który jest idealny do statystyki).
Przyznam szczerze, że jak zobaczyłem jak przyjemnie to wygląda, to pisanie takiego kodu jest całkiem niegłupim pomysłem (zwłaszcza w F#, który jest idealny do statystyki).
- 12
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ą)
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ą)
- konto usunięte
- konto usunięte
- Dwiks
- siepet
- konto usunięte
- +7 innych
- 3
@KrzaQ2: Mi podoba się, że Java dość dobrze wypadła. To tylko pokazuje, że z wersji na wersję następuje progres w wydajności.
Mi podoba się, że Java dość dobrze wypadła.
@zebatykocur: To był komentarz tego zdania. Plus to co wyżej.
Mono for Unreal Engine
Today I am happy to introduce Mono for Unreal Engine
This is a project that allows Unreal Engine users to build their game code in C# or F#
http://tirania.org/blog/archive/2014/Oct-23.html
#programowanie #unreal #csharp #fsharp #gamedev
#msqspam
Today I am happy to introduce Mono for Unreal Engine
This is a project that allows Unreal Engine users to build their game code in C# or F#
http://tirania.org/blog/archive/2014/Oct-23.html
#programowanie #unreal #csharp #fsharp #gamedev
#msqspam
- PsichiX
- Wextor
- briskmann
- wicikumoza
- CrossX
- +2 innych
- 0
@Rev: ot, hejcę garbage collectorem
#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?
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?
- 3
@Pietrek558: coś jak krotka chyba?
@Pietrek558: tuple to krotka, w pythonie można spotkać. W nim to niezmienna lista(nie możesz zmienić, albo tworzysz nowe albo kopiujesz)
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
http://funscript.info/
#webdev #javascript #fsharp
[1] https://redmonk.com/sogrady/2017/03/17/language-rankings-1-17/
[2] https://www.indeed.com/jobtrends/q-Clojure-q-Erlang-q-F%23-q-Haskell-q-Scala-q-Elm-q-Lisp-q-Rust.html
[3] http://appliedscala.com/blog/2016/scala-popularity/