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 1 of 4 |  1 2 3 4 > 

erilive - 11/10/2012 05:55 PM
#1
[F#]Para programmer F# dan functional programming disini yah :)
Halo agan-agan,

Mari kita berdiskusi tentang F#. F# adalah bahasa pemrograman yang berjalan di atas platform .NET dan Mono, dan sudah ada sejak sekitar tahun 2004.
Mulai Visual Studio 2010, F# adalah bahasa pemrograman yang menjadi bagian dari Visual Studio selain C#, VB dan C++.

Website resminya disini:
http://fsharp.net

Blog bapaknya F#, Don Syme:
http://blogs.msdn.com/b/dsyme

Tutorial dari saya di blog GEEKS INDC:
part 1: http://bit.ly/WPaKig
part 2: http://bit.ly/TfwxeB
part 3: http://bit.ly/T7SA7g

dan entry yang sama di MUGI, Microsoft User Group Indonesia:
part 1: http://mugi.or.id/blogs/eriawan/archive/2012/05/28/an-adventure-journey-of-functional-programming-and -f-2-0-in-visual-studio-2010-part-1-of-17.aspx
part 2: http://mugi.or.id/blogs/eriawan/archive/2012/06/06/an-adventure-journey-of-functional-programming-and -f-2-0-in-visual-studio-2010-part-2-of-17.aspx
part 3: http://mugi.or.id/blogs/eriawan/archive/2012/10/08/an-adventure-journey-of-functional-programming-and -f-2-0-in-visual-studio-2010-part-3-of-17.aspx

Nantinya setelah selesai 17 part, akan jadi ebook yang siap didownload untuk agan-agan semua.

F# akan sangat menjadi terkenal tidak hanya adaptasi di Visual 2010, bahkan Microsoft sudah menyediakan spesialisasi F# sebagai salah satu spesialisasi MVP:
https://mvp.support.microsoft.com/communities/mvp.aspx?product=1&competency=Visual+F%23

Mari-mari silakan bertanya dan berdiskusi \) iloveindonesias
ada.byron - 11/10/2012 06:33 PM
#2

Mantab gan, Linq di C# sama VB.Net terpengaruh dari F#. Async await juga klo gak salah ingat :thumbup.

Tutorial-nya dong, mulai dari hello world, biar trid ini terus jalan. Trus juga konsep functional programming klo bisa. Kenapa harus functional. Trid-nya klo bisa di-update trus gan dengan tutorial dan konsep-nya.

Nanti saya edit post saya yang ini buat dijadikan Table of contents.

Edit: maksud saya tutorial yang posting di-trid ini, bukan geeks.netindonesia.net, biar tetap hidup trid ini.
mnemonix - 11/10/2012 06:38 PM
#3

saingan Scala-nya Java nih

D
erilive - 11/10/2012 06:43 PM
#4

Quote:
Original Posted By ada.byron
Mantab gan, Linq di C# sama VB.Net terpengaruh dari F#. Async await juga klo gak salah ingat :thumbup.

Tutorial-nya dong, mulai dari hello world, biar trid ini terus jalan. Trus juga konsep functional programming klo bisa. Kenapa harus functional. Trid-nya klo bisa di-update trus gan dengan tutorial dan konsep-nya.

Nanti saya edit post saya yang ini buat dijadikan Table of contents.


Thanks replynya \)

Yup, banyak elemen di VB dan C# diambil dari F#, seperti Asynchronous workflow menjadi async dan await di VB dan C#.
Tutorial sedang disiapkan. Kalau penjelasan kenapa harus functional ada di blog saya, linknya ada di posting awal di thread ini, gan \)

Go F#! Go functional programming! \)
erilive - 11/10/2012 06:46 PM
#5

Quote:
Original Posted By mnemonix
saingan Scala-nya Java nih

D


Thanks responnya!
Scala juga termasuk functional programming, gan \) Setau saya Scala jgga sudah mulai diporting ke .NET juga.
ada.byron - 11/10/2012 07:05 PM
#6

Eh gan, baru baca sekilas tutorial di blog agan, gampang sama enak di-baca. Klo bisa tutorial agan dimasukin sebagai salah satu topik di TWOC (This Week On Channel 9) http://channel9.msdn.com/Shows/This+Week+On+Channel+9 untuk minggu depan mungkin. Apalagi agan bilang mau dijadikan e-book.

:2thumbup recsel.

---
Edit:
Di tutorial part 2, link rmit-nya dead link. Link-nya sekarang yang ini:

http://www.rmit.edu.au/browse;ID=it6ih746n4hp1
Syinn - 11/10/2012 07:24 PM
#7

nice trit gan \).. saya juga lagi mulai belajar2 F# tapi baru iseng2 belum sampe kebutuhan

Quote:
Original Posted By erilive
Thanks responnya!
Scala juga termasuk functional programming, gan \) Setau saya Scala jgga sudah mulai diporting ke .NET juga.


owh .. Scala udah bisa porting ke .NET ya.... ada link khusus soal portingnya ga gan?

\)
erilive - 11/10/2012 07:37 PM
#8

Quote:
Original Posted By ada.byron
Eh gan, baru baca sekilas tutorial di blog agan, gampang sama enak di-baca. Klo bisa tutorial agan dimasukin sebagai salah satu topik di TWOC (This Week On Channel 9) http://channel9.msdn.com/Shows/This+Week+On+Channel+9 untuk minggu depan mungkin. Apalagi agan bilang mau dijadikan e-book.

:2thumbup recsel.

---
Edit:
Di tutorial part 2, link rmit-nya dead link. Link-nya sekarang yang ini:

http://www.rmit.edu.au/browse;ID=it6ih746n4hp1


Ok, gan, thanks usulannya! Setau saya kalau mau masuk di TWOC Channel 9, harus kasi tau Dan Fernandez atau Brian Keller (host di TWOC), karena mereka biasanya cari-cari sendiri.

Untuk link di part 2 akan diperbaiki segera malam ini gan \)

Apa ada yang mau ditanyakan sehubungan dengan artikel F# di blog saya? Silakan juga \)
bluething - 11/10/2012 07:37 PM
#9

Puyeng lihat sintaksnya. Komenin isi tutorialnya ajah deh, keren euy
erilive - 11/10/2012 07:40 PM
#10

Quote:
Original Posted By Syinn
nice trit gan \).. saya juga lagi mulai belajar2 F# tapi baru iseng2 belum sampe kebutuhan



owh .. Scala udah bisa porting ke .NET ya.... ada link khusus soal portingnya ga gan?

\)


Thanks komentarnya bro! \)

Ada linknya, dan ini link resmi dari pembuat Scala:
http://www.scala-lang.org/node/10299

Statusnya adalah "work in progress" dan mereka akan segera meluncurkan dukungan Scala untuk Visual Studio 2010 awal tahun depan. \)
ada.byron - 11/10/2012 09:21 PM
#11

Quote:
Original Posted By erilive
Ok, gan, thanks usulannya! Setau saya kalau mau masuk di TWOC Channel 9, harus kasi tau Dan Fernandez atau Brian Keller (host di TWOC), karena mereka biasanya cari-cari sendiri.

Untuk link di part 2 akan diperbaiki segera malam ini gan \)

Apa ada yang mau ditanyakan sehubungan dengan artikel F# di blog saya? Silakan juga \)


Ini keknya bisa kasih tahu melalui comment di episode terbaru, biasa kan mereka selalu liat comments sebelum episode terbaru dibikin.
---
Saya punya beberapa pertanyaan, tapi tunggu saya selesai ujian dulu gan (lagi musim ujian), nanti saya post di-mari. Setelah baca tutorial agan, tangan saya jadi gatel pengen coba.
derodevil - 11/10/2012 11:23 PM
#12

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?
yeyek - 11/10/2012 11:45 PM
#13

Ijin gelar tiker \)

Minggu lalu baru aja donlot:

[F#]Para programmer F# dan functional programming disini yah :)
Real-World Functional Programming
With examples in F# and C#
Author: Tomas Petricek & Jon Skeet

Tapi seperti biasa, karena ga ada waktu (plus males) cuma numpuk di hard disk aja malu:

EDIT. tambah link donlot
Spoiler for donlot
http://depositfiles.com/files/o7vbjapuf
erilive - 12/10/2012 02:23 AM
#14

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?


MVC di F#? Ada. Tinggal ditambahkan melalui addon, download aja dari MSDN Gallery:
http://visualstudiogallery.msdn.microsoft.com/3d2bf938-fc9e-403c-90b3-8de27dc23095

Kelebihannya? Lumayan banyak gan.

[*]Succinct (syntaxnya ringkas)
[*]Immutable
[*]Asynchronous



Lebih lengkapnya silakan lihat blog saya di blog MUGI/INDC Geeks:
part 1: http://mugi.or.id/blogs/eriawan/archive/2012/05/28/an-adventure-journey-of-functional-programming-and -f-2-0-in-visual-studio-2010-part-1-of-17.aspx
part 2: http://mugi.or.id/blogs/eriawan/archive/2012/06/06/an-adventure-journey-of-functional-programming-and -f-2-0-in-visual-studio-2010-part-2-of-17.aspx
part 3: http://mugi.or.id/blogs/eriawan/archive/2012/10/08/an-adventure-journey-of-functional-programming-and -f-2-0-in-visual-studio-2010-part-3-of-17.aspx

Contoh lebih ringkas, kalo di F#:

[CODE]let square x = x * x[/CODE]

Kalau di C#:

[CODE]Int32 Square(Int32 x) { return x * x; }[/CODE]

kalau di VB:

[CODE]Function Square(x As Int32)
Square = x * x
End Function[/CODE]

Dan banyak yang lainnya, termasuk Type Provider di F# 3.0!

Go F#!
derodevil - 12/10/2012 10:31 AM
#15

Quote:
Original Posted By erilive
MVC di F#? Ada. Tinggal ditambahkan melalui addon, download aja dari MSDN Gallery:
http://visualstudiogallery.msdn.microsoft.com/3d2bf938-fc9e-403c-90b3-8de27dc23095

Kelebihannya? Lumayan banyak gan.

[*]Succinct (syntaxnya ringkas)
[*]Immutable
[*]Asynchronous



Lebih lengkapnya silakan lihat blog saya di blog MUGI/INDC Geeks:
part 1: http://mugi.or.id/blogs/eriawan/archive/2012/05/28/an-adventure-journey-of-functional-programming-and -f-2-0-in-visual-studio-2010-part-1-of-17.aspx
part 2: http://mugi.or.id/blogs/eriawan/archive/2012/06/06/an-adventure-journey-of-functional-programming-and -f-2-0-in-visual-studio-2010-part-2-of-17.aspx
part 3: http://mugi.or.id/blogs/eriawan/archive/2012/10/08/an-adventure-journey-of-functional-programming-and -f-2-0-in-visual-studio-2010-part-3-of-17.aspx

Contoh lebih ringkas, kalo di F#:

[CODE]let square x = x * x[/CODE]

Kalau di C#:

[CODE]Int32 Square(Int32 x) { return x * x; }[/CODE]

kalau di VB:

[CODE]Function Square(x As Int32)
Square = x * x
End Function[/CODE]

Dan banyak yang lainnya, termasuk Type Provider di F# 3.0!

Go F#!


Mantap tuh... Ane harus nyobain nih. Btw ada gak ebook atau link khusus yg nyediain komparasi atau translasi syntax misalnya dari C# ke F#? Klo yang VB.Net C# ane pernah bikin. Nah yg C# F# blm nemu nih. Sory klo ane terlalu manja gan D Soalnya lg pingin nyobain nih
erilive - 12/10/2012 12:11 PM
#16

Quote:
Original Posted By derodevil
Mantap tuh... Ane harus nyobain nih. Btw ada gak ebook atau link khusus yg nyediain komparasi atau translasi syntax misalnya dari C# ke F#? Klo yang VB.Net C# ane pernah bikin. Nah yg C# F# blm nemu nih. Sory klo ane terlalu manja gan D Soalnya lg pingin nyobain nih


Hehe.. Tenang aja gan, gak manja kalau cuma tanya masalah syntax \)

Terus terang sampai saat ini tidak ada ebook yang dengan mudah menggambarkan perbandingan C# dan F#, tapi untunglah ada website blog karyawan Microsoft yang menyediakan perbandingan OOP di F# dan C#:

http://blogs.msdn.com/b/timng/archive/2010/04/05/f-object-oriented-programming-quick-guide.aspx

Tambahan, pemakaian switch di C# lebih panjang daripada pattern matching di F#.

Contoh:

[CODE]
let defineQuality grade = match grade with
| "A" >- "Perfect"
| "B" >- "Very good"
| "C" >- "Good"
| "D" >- "Bad"
| _ >- "undefined"

[/CODE]

Kalau di C#:

[CODE]
static String defineQuality(String grade)
{
String qualityResult = "";
switch (grade)
{
case "A":
{ qualityResult = "Perfect"; break; }
case "B":
{ qualityResult = "Very good"; break; }
case "C":
{ qualityResult = "Good"; break; }
case "D":
{ qualityResult = "Bad"; break; }
default:
{ qualityResult = "undefined"; break; }
}
return qualityResult;
}
[/CODE]
mnemonix - 12/10/2012 12:31 PM
#17

menunggu pembahasan soal monad Peace:
erilive - 12/10/2012 05:14 PM
#18

Quote:
Original Posted By mnemonix
menunggu pembahasan soal monad Peace:


Monad yang mana gan? Maybe monad, Identity monad, Reader monad, State monad? \)

Kalau Reader monad di F#, sudah ada yang bahas:
http://codebetter.com/matthewpodwysocki/2010/01/07/much-ado-about-monads-reader-edition/

Dan sepertinya kalau diimplementasikan di bahasa selain F# (kecuali kalau di Haskell) sepertinya akan menjadi kurang elegan. \)

Buat agan-agan yang laen, silakan lihat Monad di Wikipedia:
http://en.wikipedia.org/wiki/Monad_%28functional_programming%29

Monad disini bukan "Monad" di cabang matematika Category Theory.

Kalau memang banyak peminatnya, akan saya jelaskan Monad di thread ini, agan-agan \)
Syinn - 12/10/2012 06:36 PM
#19

Quote:
Original Posted By erilive
Monad yang mana gan? Maybe monad, Identity monad, Reader monad, State monad? \)

Kalau Reader monad di F#, sudah ada yang bahas:
http://codebetter.com/matthewpodwysocki/2010/01/07/much-ado-about-monads-reader-edition/

Dan sepertinya kalau diimplementasikan di bahasa selain F# (kecuali kalau di Haskell) sepertinya akan menjadi kurang elegan. \)

Buat agan-agan yang laen, silakan lihat Monad di Wikipedia:
http://en.wikipedia.org/wiki/Monad_%28functional_programming%29

Monad disini bukan "Monad" di cabang matematika Category Theory.

Kalau memang banyak peminatnya, akan saya jelaskan Monad di thread ini, agan-agan \)


silahkan aja kalo mau langsung bahas monad, saya nyimak dulu ...kalo ada yang kurang ngerti , akan saya tanyakan pada anda \)

ada baiknya bahas yang awal dulu, yakni monad state

btw, saya ingin tahu kenapa om bisa berkesimpulan yang saya bold di atas ? bisa anda jelaskan secara tehnik dan detail?

karena soal keeleganan code pemrograman kan tergantung kreatifitas programmer itu sendiri, apapun bahasa program yang dia gunakan (ini kalo menurut saya lho, om Peace: )
erilive - 13/10/2012 02:19 AM
#20

Quote:
Original Posted By Syinn
silahkan aja kalo mau langsung bahas monad, saya nyimak dulu ...kalo ada yang kurang ngerti , akan saya tanyakan pada anda \)

ada baiknya bahas yang awal dulu, yakni monad state

btw, saya ingin tahu kenapa om bisa berkesimpulan yang saya bold di atas ? bisa anda jelaskan secara tehnik dan detail?

karena soal keeleganan code pemrograman kan tergantung kreatifitas programmer itu sendiri, apapun bahasa program yang dia gunakan (ini kalo menurut saya lho, om Peace: )


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 \)
Page 1 of 4 |  1 2 3 4 > 
Home > LOEKELOE > COMPUTER STUFF > Programmer Forum > [F#]Para programmer F# dan functional programming disini yah :)