Angel "Java" Lopez

NET, Java, PHP y Desarrollo de Software

This Blog

Syndication

Search

Tags

Community

Email Notifications

Archives

.NET

ASP.NET

Windows Form

VB.NET

C#

Sitios

Blogs

Recursos de F# y Programación Funcional

F# es un lenguaje funcional, creado por Microsoft. Implementado bajo el soporte de .NET CLR, es un lenguaje tipado, con acceso completo al framework de .NET. Hereda características de los lenguajes ML/OCaml, notablemente de este último, el soporte de clases y objetos.

F# nació dentro de Microsoft Research, siendo su principal creador Don Syme. Aunque es un lenguaje funciona, soporta programación de objetos, y no vive en solitario: puede llamarse desde otros lenguajes .NET y puede invocar a librerías escritas en otros lenguajes, lo cual le da una flexibilidad que otros lenguajes más "puros" no tiene. Despues de años de desarrollo, es un lenguaje maduro, que está ganando momento en la comunidad científica, y en otras, como la financiera, que necesitan manipular monedos y operar con fórmulas. Como puede acceder a todo .NET, puede aprovechar otras librerías, como muestra esta imagen, de un programa de demostración que viene en el paquete, donde F# accesde a DirectX desde .NET.

Cito algo de la promoción de Apress sobre el libro Expert F#:

While inspired by OCaml, F# isn't just another functional programming language. Drawing on many of the strengths of both OCaml and .NET, it's a general–purpose language ideal for real–world development. F# integrates functional, imperative, and object–oriented programming styles so you can flexibly and elegantly solve programming problems, and brings .NET development alive with interactive execution. Whatever your background, you'll find that F# is easy to learn, fun to use, and extraordinarily powerful. F# will help change the way you think about and go about programming.

Hay abundante información sobre el lenguaje. Este posts es una actualización de uno anterior, con enlaces, blogs, posts, recursos, libros, sobre este interesante lenguaje. Ya había publicado a fines del año pasado:

Recursos de F#

Enlaces

La primera página a visitar es la página madre de F# en Microsoft:

Microsoft Research's website for F#
F# Manual
F# Documentation

Hay blogs y foros en
hubFS- The place for F# - F# news, forums and blogs

Blogs personales de gente dedicada a F#:
Don Syme's web log, a key source of information on F#
Robert Pickering's blog
Tomas Petricek
Granville Barnett's blog
Luke Hoban's blog
Chris Smith (F# Tester)
Brian McNamara (F# Dev)
Jomo Fisher (F# Dev)
Andrew Kennedy (MSR)
Luca Bolognese (Managed Languages Principal PM)

Harry Pierson ha escrito varios posts sobre programación funcional, no solo para F#, abarca también F#:
DevHawk Functional Programming category

Posts y podcasts

Algunos enlaces a posts (hay cientos en los enlaces de arriba), sólo para que tengan un primer encuentro con el lenguaje y su poder expresivo:

Episode 18- Matt Podwysocki on F# and Functional Programming Herding Code
Matt Podwysocki pone "fun" en programación "fun"cional, con F#.

Concurrency on a single thread
Usando expresiones F# asincrónicamente para escribir programas paralelos.

F# September 2008 CTP Released
El último "release" CTP de septiembre. 

F# Overview (I.) - Introduction Articles TomasP.Net

Functional Understanding

Practical F# Parsing- The Parse Buffer

Play Ball Script in F#

Units of Measure in F#- Part One, Introducing Units

The Weekly Source Code 34 - The Rise of F#

Para escuchar

Herding Code 18- Matthew Podwysocki on F# and Functional Programming
Software Engineering Radio Episode 108 - Simon Peyton Jones on Functional Programming and Haskel
.NET Rocks Episode 310 - Simon Peyton Jones on Functional Programming and Haskell

Ejemplos

Además de los ejemplos que vienen con el paquete de distribución, encontraran código para bajarse y probar en lás páginas de los libros mencionados más abajo. Además, tenemos:

F# Samples - Home
Ant Colony Simulation
FsTest
FsUnit

Libros de F#

Estoy leyendo los dos primeros, publico acá algo del resumen publicado por las editoriales para promocionarlos:

  Foundations of F#

Every professional .NET programmer needs to learn about FP, and there's no better way to do it than by learning F#--and no easier way to learn F# than from Foundations of F#. Written by F# evangelist Rob Pickering, this is an elegant, comprehensive introduction to all aspects of the language and an incisive guide to using F# for real-world professional development.

by Robert Pickering | ISBN-13: 978-1-59059-757-6 | Published May 2007 | 360pp.

 

 Expert F#

Written by F#'s inventor and two major contributors to its development, Expert F# is the authoritative, comprehensive, and in–depth guide to the language and its use. Designed to help others become experts, the first part of the book quickly yet carefully describes the F# language. The second part then carefully shows how to use F# elegantly for a wide variety of practical programming tasks.

by Don Syme, Adam Granicz, Antonio Cisternino | ISBN-13: 978-1-59059-850-4 | Published Dec 2007 | 609pp.

Otro libro, de Jon Harrop: 

F# for Scientists

F# for Scientists will bring you up to speed with basic syntax and programming language concepts. Written in a clear and concise style with practical and enlightening examples, this book is accessible and easy to understand. By reviewing the Visual Studio screen shots that illustrate compilation, debugging and interactive use, you will understand both the functional aspects of F# and the object-oriented task-based features that make F# so useful in practice.

Programación Funcional

Si estamos interesados en la programación funcional en general, podemos visitar:

Functional Programming for the Rest of Us

Why Functional Programming Matters un clásico de John Hughes

Why Haskell Matters

El "paper" clásico de Backus backus.pdf. Backus fue el que puso de nuevo en el tapete a la programación funcional. Recuerdo mis tiempos de "jugar" con APL (A Programming Language).

Un "popurri" de enlaces:

Are FP and OO Incompatible Syntactic Styles-
A Gentle Introduction to Haskell, Version 98
About Erlang
APL (programming language) (uno de los primeros lenguajes con los que me topé)
An APL Compiler (Timothy Budd no deja de escribir libros sobre implementación de lenguajes)
The Cat Programming Language (Gracias a Rodolfo Finochietti por comentarme este lenguaje)
YouTube - Tangible Functional Programming
Functional Programming Notables #1 (más enlaces a programación funcional)
The Little MLer
functional objects Felleisen
Erlang in Lisp
Free Online Functional Programming Books -- FreeTechBooks.com
The Expression Lemma (muy math geek, teoría de categorías, programación funcional y LINQ!! Ideal para internarse una semana)
Chaitin's construction (también math-geeky, más teoría de categorías, Chaitin es argentino, como el mate)
On being stateful
The Glasgow Haskell Compiler
A Neighborhood of Infinity- You Could Have Invented Monads! (And Maybe
InfoQ- Domain Specific Languages in Erlang

C# Funcional

.NET y C# van adoptando con el tiempo algunos estilos funcionales. Todo lo que siempre quiso saber sobre programación funcional con C#, desde el post del bueno de Mattew Podwysocki:

Richmond Code Camp 2008.2 - Functional C# Recap

Otros enlaces:

Functional C# Project
Is C# Becoming a Functional Language- - Mads Torgersen
Functional C# - Learn from F# and LINQ

Mi Delicious

Soy un adicto a Delicious, acá están los tags que uso para estos temas:

http://delicious.com/ajlopez/fsharp
http://delicious.com/ajlopez/f%23
http://delicious.com/ajlopez/functionalprogramming
http://delicious.com/ajlopez/haskell
http://delicious.com/ajlopez/erlang

Angel "Java" Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez
http://delicious.com/ajlopez

Published Sat, Oct 11 2008 16:53 by lopez

Leave a Comment

(required) 
(required) 
(optional)
(required) 
If you can't read this number refresh your screen
Enter the numbers above: