Programmer Forum
Home > LOEKELOE > COMPUTER STUFF > Programmer Forum > [F#]Para programmer F# dan functional programming disini yah :)
Total Views: 1368 Share : Facebook ShareFacebook Twitter ShareTwitter Google+ ShareGoogle+
Page 2 of 4 |  < 1 2 3 4 > 

derodevil - 13/10/2012 12:33 PM
#21

Quote:
Original Posted By erilive
Lebih elegan. Karena implementasi monad di C# yang mengharuskan semua type harus didefinisikan dan juga akan mengalami kesulitan untuk mendefinisikan currying, yang di dalam F# lebih alami.

State monad in F#:

[CODE]
module StateMonad

let >>(=) x f =
(fun s0 >-
let a,s = x s0
f a s)

let returnS a = (fun s >- a, s)

type StateBuilder() =
member m.Bind(x, f) = x >>= f
member m.Return a = returnS a

let state = new StateBuilder()

let getState = (fun s >- s, s)
let setState s = (fun _ >- (),s)
let Execute m s = m s >| fst
[/CODE]

Mencoba implementasi State monad di C#? Modiar gan..
Sudah ada yang implementasi di:
http://taumuon-jabuka.blogspot.com/2012/06/state-monad-in-c-and-f.html

ini contohnya:

[F#]Para programmer F# dan functional programming disini yah :)

Dan untuk implementasi bind seperti >>= di F# atas:

[F#]Para programmer F# dan functional programming disini yah :)


Seperti yang saya sebutkan di blog saya, tuple di F# adalah bagian yang tak terpisahkan sedangkan di C# dan VB harus didefinisikan secara explisit.

Apalagi untuk operator >>= di C# dan VB tidak bisa didefiniskan, di F# bisa. Akhirnya lebih elegan, gan \)


Dr dulu ane nyari bhs pmrograman yg simpel, "manusiawi" tp "kuat". Sptnya ada di F# nih. Di sela2 jam kantor ane musti pelajarin nih konsep sekaligus syntaxnya. Btw, blog agan mantap tuh. Lanjut gan, ane nyimak \)
erilive - 14/10/2012 08:11 PM
#22
Type inference di F#
Type inference di F# sangat luar biasa, dibandingkan dengan type inference di C# dan VB.

Contohnya:

Dari type inference yang sederhana:
[F#]Para programmer F# dan functional programming disini yah :)

Ke type inference yang lebih kompleks di pembuatan function:

[F#]Para programmer F# dan functional programming disini yah :)

Mantaapp!! Go F#! \)

Up up! sundulgans
hotcaramel - 14/10/2012 08:40 PM
#23

Untuk agan ts,

sebelumnya saya ngefans banget dengan f# dan scala
Tapi blum pindah ke f# , karena c# 5 sudah banyak sekali kemiripan dengan f#


Ada beberapa request
1. Penjelasan monad dengan sample model dari real world
Saya masih blum nangkep kegunaan monad itu. Jangan sample formula saja
2. Sample project c# yang memanggil f# library
3. Sample mvc 3 module blog dengan ef 4.1 dan f#

Untuk no 2 dan 3, nice to have saja pa
Kalau request kelewatan , skip saja
hotcaramel - 14/10/2012 08:44 PM
#24

Quote:
Original Posted By derodevil
Mau bljr jg ah... Btw, templete F# di vs2012 gak ada yg buat MVC ya dan cm console doang, atau perlu install extension atau templete online? Terus ini dan ini?
Klo sama2 jalan under .net framework apa kelebihannya ya gan?


Konon kalau ngerti f#, produktivitas meningkat, line of code lebih sedikit.
Semakin sedikit loc, semakin sedikit bug yg ada
F# tidak ada hubungan sama performance app

Oh ya, functional programming baik utk pertumbuhan otak dan gizi programmer \)
derodevil - 15/10/2012 12:06 AM
#25

Quote:
Original Posted By hotcaramel
Konon kalau ngerti f#, produktivitas meningkat, line of code lebih sedikit.
Semakin sedikit loc, semakin sedikit bug yg ada
F# tidak ada hubungan sama performance app

Oh ya, functional programming baik utk pertumbuhan otak dan gizi programmer \)


Ane udh coba bbrp line code. Menarik, simpel banget.
Jangka panjangnya gimana ya kira "nasib" F# ini? Selama ini kan visual studio di forum2 spt stackoverflow, codeproject dan lain2 identik dg vb.net dan c#. Mgkn ane terlalu berlebihan jika bilang akan bernasib spt J# krn punya reason yg berbeda. Yg ane maksudkan adalah komunitasnya. Jk emang memungkinkan ane perdalam aja nih.
Template utk VS2012 kayanya masih sedikit ya..
erilive - 15/10/2012 02:22 AM
#26

Quote:
Original Posted By hotcaramel
Untuk agan ts,

sebelumnya saya ngefans banget dengan f# dan scala
Tapi blum pindah ke f# , karena c# 5 sudah banyak sekali kemiripan dengan f#

Ada beberapa request
1. Penjelasan monad dengan sample model dari real world
Saya masih blum nangkep kegunaan monad itu. Jangan sample formula saja
2. Sample project c# yang memanggil f# library
3. Sample mvc 3 module blog dengan ef 4.1 dan f#

Untuk no 2 dan 3, nice to have saja pa
Kalau request kelewatan , skip saja


C# 5 banyak kemiripan dengan F#? Maaf gan, kemiripannya dalam hal apa saja? Kalau async dan await di C# 5, F# sudah ada sejak tahun 2007.

Tujuan dari diskusi ini bukan membuat agan pindah ke F#, tetapi memperkaya pemahaman kita tentang pemrograman di .NET, tidak cuma mendalami C# dan VB saja \)

Kalau agan membaca blog saya, saya mengajak kita semua menjadi "polyglot" programmer, daripada programmer yang hanya mendalami 1-2 bahasa saja. \)

Ok, akan saya coba jawab satu persatu \)

Contoh monad di real world? Ada. LINQ punya SelectMany, dan SelectMany adalah monad! Karena SelectMany adalah implementasi dari salah satu monad, yaitu List Monad.

Tujuan monad adalah function composition, dan SelectMany adalah buktinya. Dengan mengkomposisikan dua Select menjadi satu.

Contoh di C#:

[CODE]var query = from file in Directory.GetFiles("logs")
from line in File.ReadLines(file)
select Path.GetFileName(file) + ": " + line;[/CODE]

Karena ada 2 source data yang berbeda (dari 2 from) maka compiler secara otomatis menterjemahkan coding diatas menjadi:

[CODE]var query = Directory.GetFiles("logs")
.SelectMany(file >= File.ReadLines(file),
(file, line) >= Path.GetFileName(file) + ": " + line);[/CODE]

SelectMany disini sama dengan analogi "Bind" di monad. SelectMany mencoba mengkomposisikan dua data source.

Dalam SelectMany, berikut ini codingnya:

[CODE]private static IEnumerable SelectMany(
IEnumerable source,
Func selector)
{
foreach (TSource item in source)
{
foreach (TResult result in selector(item))
{
yield return result;
}
}
} [/CODE]

Kalau di F# tinggal implementasi operator Bind saja, seperti contoh di thread sebelumnya tentang function >>"=".

Nomer 2, sample project F# dan C#? Silakan baca blog ini:
http://www.c-sharpcorner.com/uploadfile/rmcochran/fsharp-data-abstraction-layer-for-C-Sharp/

dan memanggil function F# dari C# ada contohnya disini:
http://stackoverflow.com/questions/478531/call-f-code-from-c-sharp

Nomer 3? Maaf gan, silakan agan coba sendiri.. \) Karena F# dan bahasa-bahasa lain sama saja kalau mau bikin MVC dan memakai EF 4.1.
erilive - 15/10/2012 02:30 AM
#27

Quote:
Original Posted By derodevil
Ane udh coba bbrp line code. Menarik, simpel banget.
Jangka panjangnya gimana ya kira "nasib" F# ini? Selama ini kan visual studio di forum2 spt stackoverflow, codeproject dan lain2 identik dg vb.net dan c#. Mgkn ane terlalu berlebihan jika bilang akan bernasib spt J# krn punya reason yg berbeda. Yg ane maksudkan adalah komunitasnya. Jk emang memungkinkan ane perdalam aja nih.
Template utk VS2012 kayanya masih sedikit ya..


Nasib F#? Bagus! Karena F# didukung penuh oleh tim F# sendiri dan tim Visual Studio dalam Microsoft, walaupun menjadi bagian secara penuh sejak Visual Studio 2010.

Dan mulai tahun 2011 kemaren, Microsoft menambah kategori baru dalam penghargaan MVP, yaitu penghargaan MVP Visual F#!
https://mvp.support.microsoft.com/communities/mvp.aspx?product=1&competency=Visual+F%23

Komunitas? Ada dan banyak! coba aja di google, cari aja keyword "CUFP", "fshub" dan "strangelight".
Kalau di Indonesia, silakan diskusi di milis MUGI dan INDC Geeks (Geeks .netindonesia). Saya dan teman-teman sering nongkrong disana \)
hotcaramel - 15/10/2012 11:16 AM
#28

statement "c# 5 banyak kemiripan dengan f#" mungkin sedikit rancu.
saya koreksi dikit pak ,
maksud saya feature pada f# maupun c# 5 sama-sama sudah memenuhi kebutuhan terhadap coding saya.

sedikit cerita , saya mulai mengenal linq , ketika ada asp.net mvc 3.
feature mapReduce (selectMany and groupBy) , sangat berguna untuk menggantikan query.

saya berpikir beralih ke f#, karena ada feature async. namun di c# 5 , itu sudah di handle. jadi secara overall pindah ke f# tidak terlalu significant.

tapi ada beberapa hal yg saya suka di f# :
pure functional programming itu sendiri , immutable dan pattern matching.
monad dkk blom nangkep pa. ini bener2 konsep baru , jadi harus belajar pelan2.

mungkin strategy yg akan saya gunakan adalah main layer menggunakan asp.net , tapi ada beberapa library service yg menggunakan f#.

tapi secara overall, saya tertarik banget dengan f# , dan lebih bagus kalau ada evangelist seperti bapak yang orang indo. komunikasi lebih gampang.
thx pak untuk url nya , nanti saya coba2 dan tanya lagi

Quote:
Original Posted By erilive
C# 5 banyak kemiripan dengan F#? Maaf gan, kemiripannya dalam hal apa saja? Kalau async dan await di C# 5, F# sudah ada sejak tahun 2007.

Tujuan dari diskusi ini bukan membuat agan pindah ke F#, tetapi memperkaya pemahaman kita tentang pemrograman di .NET, tidak cuma mendalami C# dan VB saja \)

Kalau agan membaca blog saya, saya mengajak kita semua menjadi "polyglot" programmer, daripada programmer yang hanya mendalami 1-2 bahasa saja. \)

Ok, akan saya coba jawab satu persatu \)

Contoh monad di real world? Ada. LINQ punya SelectMany, dan SelectMany adalah monad! Karena SelectMany adalah implementasi dari salah satu monad, yaitu List Monad.

Tujuan monad adalah function composition, dan SelectMany adalah buktinya. Dengan mengkomposisikan dua Select menjadi satu.

Contoh di C#:

[CODE]var query = from file in Directory.GetFiles("logs")
from line in File.ReadLines(file)
select Path.GetFileName(file) + ": " + line;[/CODE]

Karena ada 2 source data yang berbeda (dari 2 from) maka compiler secara otomatis menterjemahkan coding diatas menjadi:

[CODE]var query = Directory.GetFiles("logs")
.SelectMany(file >= File.ReadLines(file),
(file, line) >= Path.GetFileName(file) + ": " + line);[/CODE]

SelectMany disini sama dengan analogi "Bind" di monad. SelectMany mencoba mengkomposisikan dua data source.

Dalam SelectMany, berikut ini codingnya:

[CODE]private static IEnumerable SelectMany(
IEnumerable source,
Func selector)
{
foreach (TSource item in source)
{
foreach (TResult result in selector(item))
{
yield return result;
}
}
} [/CODE]

Kalau di F# tinggal implementasi operator Bind saja, seperti contoh di thread sebelumnya tentang function >>"=".

Nomer 2, sample project F# dan C#? Silakan baca blog ini:
http://www.c-sharpcorner.com/uploadfile/rmcochran/fsharp-data-abstraction-layer-for-C-Sharp/

dan memanggil function F# dari C# ada contohnya disini:
http://stackoverflow.com/questions/478531/call-f-code-from-c-sharp

Nomer 3? Maaf gan, silakan agan coba sendiri.. \) Karena F# dan bahasa-bahasa lain sama saja kalau mau bikin MVC dan memakai EF 4.1.
hotcaramel - 15/10/2012 11:22 AM
#29

j# tewas karena urusan legal dengan sun java.
bukan dosa komunitas.

product microsoft yang tewas itu cuma foxpro. itu juga karena umur.
dan rebirth menjadi lightswitch.

saya kira tidak perlu takut , belum pernah ada bahasa programming yang benar2 mati. apalagi f# itu paradigma yang berbeda , jadi c# dan f# posisi komplementer. component UI windows form tidak ada yg dibuat dalam bentuk f#


Quote:
Original Posted By derodevil
Ane udh coba bbrp line code. Menarik, simpel banget.
Jangka panjangnya gimana ya kira "nasib" F# ini? Selama ini kan visual studio di forum2 spt stackoverflow, codeproject dan lain2 identik dg vb.net dan c#. Mgkn ane terlalu berlebihan jika bilang akan bernasib spt J# krn punya reason yg berbeda. Yg ane maksudkan adalah komunitasnya. Jk emang memungkinkan ane perdalam aja nih.
Template utk VS2012 kayanya masih sedikit ya..
erilive - 15/10/2012 12:20 PM
#30

Quote:
Original Posted By hotcaramel
j# tewas karena urusan legal dengan sun java.
bukan dosa komunitas.

product microsoft yang tewas itu cuma foxpro. itu juga karena umur.
dan rebirth menjadi lightswitch.

saya kira tidak perlu takut , belum pernah ada bahasa programming yang benar2 mati. apalagi f# itu paradigma yang berbeda , jadi c# dan f# posisi komplementer. component UI windows form tidak ada yg dibuat dalam bentuk f#


Setuju gan! J# memang dibunuh Microsoft karena kalah di pengadilan setelah dituntut Sun Microsystems.

Yup, memang F# dan C# saling melengkapi. Dan seperti yang sering dikatakan oleh Don Syme (bapak F#), F# fokus ke problem solving, matematis, paralel programming, asynchronous, dan data intelligence management.
walangsuper - 15/10/2012 12:40 PM
#31

Wah, ane sedang tertarik sama functional programming nih. Sayangnya nggak pake windows, jadi nggak pernah nyoba platform .net, belum nyoba apakah F# ini bisa jalan dengan mono di linux. Saya nyimak dulu penjelasan tentang monad. Request, kalo berkenan dasar2 functional programming juga disisipkan dalam pembahasan. :addfriends
hotcaramel - 15/10/2012 08:18 PM
#32

kaya f# jalan di mono linux deh
mono disupport banget oleh suse

Quote:
Original Posted By walangsuper
Wah, ane sedang tertarik sama functional programming nih. Sayangnya nggak pake windows, jadi nggak pernah nyoba platform .net, belum nyoba apakah F# ini bisa jalan dengan mono di linux. Saya nyimak dulu penjelasan tentang monad. Request, kalo berkenan dasar2 functional programming juga disisipkan dalam pembahasan. :addfriends
mnemonix - 15/10/2012 08:31 PM
#33

Quote:
Original Posted By walangsuper
Wah, ane sedang tertarik sama functional programming nih. Sayangnya nggak pake windows, jadi nggak pernah nyoba platform .net, belum nyoba apakah F# ini bisa jalan dengan mono di linux.


kalo cuma sekedar functional programming, gak harus F#:
ada lisp, haskell, ocaml, scheme, etc
itu semua available for *nix

tapi kalo fusion OOP & FP, ya bisa coba F#, antara lain
walangsuper - 15/10/2012 09:26 PM
#34

Quote:
Original Posted By hotcaramel
kaya f# jalan di mono linux deh
mono disupport banget oleh suse
nggak pake suse euy malu: rada males juga masang mono, hehehe Peace:

Quote:
Original Posted By mnemonix
kalo cuma sekedar functional programming, gak harus F#:
ada lisp, haskell, ocaml, scheme, etc
itu semua available for *nix

tapi kalo fusion OOP & FP, ya bisa coba F#, antara lain
Iya mod. cuman keknya bahasa fungsional yang dibikin threadnya (+ di judul ada "functional programming") baru f# ini kan? kalau scala juga fusion functional+oop kah?
erilive - 15/10/2012 11:19 PM
#35

Quote:
Original Posted By mnemonix
kalo cuma sekedar functional programming, gak harus F#:
ada lisp, haskell, ocaml, scheme, etc
itu semua available for *nix

tapi kalo fusion OOP & FP, ya bisa coba F#, antara lain


Yup, itu kenapa judul thread ini programmer F# dan functional programming gan momod \)

Kalau Haskell, bisa jalan di Windows juga.. Pakai Glasgow Haskell atau sering disebut ghc. \)

Karena yang membuat ghc adalah Simon Peyton Jones, engineer Microsoft \)

Miranda dan OCaml juga bisa jalan di Windows lho \)
erilive - 15/10/2012 11:25 PM
#36

Quote:
Original Posted By walangsuper
nggak pake suse euy malu: rada males juga masang mono, hehehe Peace:

Iya mod. cuman keknya bahasa fungsional yang dibikin threadnya (+ di judul ada "functional programming") baru f# ini kan? kalau scala juga fusion functional+oop kah?


Scala juga ada OOPnya selain dia secara default adalah functional programming language.
Contoh:

[CODE]class Person{
var firstName = "Mohamed"
var lastName = "Sanaulla"
override def toString:String= firstName+" "+lastName
}[/CODE]


Kalau Scheme saya kurang tau..

Kalau OCaml adalah Caml yang mempunyai feature OOP alias mendukung OOP. F# adalah turunan OCaml juga \)
mnemonix - 15/10/2012 11:29 PM
#37

Quote:
Original Posted By erilive
Yup, itu kenapa judul thread ini programmer F# dan functional programming gan momod \)

Kalau Haskell, bisa jalan di Windows juga.. Pakai Glasgow Haskell atau sering disebut ghc. \)

Karena yang membuat ghc adalah Simon Peyton Jones, engineer Microsoft \)

Miranda dan OCaml juga bisa jalan di Windows lho \)


itu itu gw tau
konteks gw ngomong gitu adalah karena ada yg bilang "Sayangnya nggak pake windows"
mnemonix - 15/10/2012 11:33 PM
#38

Quote:
Original Posted By erilive

Kalau Scheme saya kurang tau..


functional
http://mitpress.mit.edu/sicp/

IMHO, functional language yg paling "menarik" itu dr keluarganya Lisp (Common Lisp, Scheme), karena minimalis (hint: lambda calculus), & merupakan realisasi dari "code = data"
ujung2nya adalah "programmable programming language" D
Syinn - 15/10/2012 11:55 PM
#39

^
^
om erilive dan om mnem bahasannya tingkat tinggi kalo udah schema or lisp ane agak ga ngerti nih malus

om erilive, lanjutin bahas monadnya ya? indetity dan reader monad

saya masih nyimak nih... masih penasaran tentang perbedaannya dan implementasinya pada app web /web service

oya, sebelumnya saya ingin tahu penjelasan secara tehnik dari om erilive tentang anggapan bahwa "IO monad is evil" ?
erilive - 15/10/2012 11:55 PM
#40

Quote:
Original Posted By mnemonix
functional
http://mitpress.mit.edu/sicp/

IMHO, functional language yg paling "menarik" itu dr keluarganya Lisp (Common Lisp, Scheme), karena minimalis (hint: lambda calculus), & merupakan realisasi dari "code = data"
ujung2nya adalah "programmable programming language" D


Yup, Lisp merupakan "functional metaprogramming language" yang bisa langsung mendukung REPL \)
Page 2 of 4 |  < 1 2 3 4 > 
Home > LOEKELOE > COMPUTER STUFF > Programmer Forum > [F#]Para programmer F# dan functional programming disini yah :)