El libro Real-world Functional Programming que escribí con Jon Skeet (pena por el anuncio!) espera un cierto conocimiento existente de los lenguajes orientados a objetos (por ejemplo, C#) pero explica brevemente todas las características más avanzadas que C# se ha comparado con, por ejemplo, Java.
Tiene algunos ejemplos de programación de GUI con WinForms (un marco más moderno sería WPF, pero algunos conceptos son esencialmente los mismos). Puede echar un vistazo a algunos ejemplos, porque hay algo de contenido libre relacionado con interfaz gráfica de usuario:
- Chapter 4 (coincidentemente, disponible como una muestra gratis :-)) muestra cómo implementar una aplicación para dibujar gráficos sencillos por medio de caracteristicas basicas.
- Programming user interfaces using workflows (extracto libre) muestra un patrón avanzado que es muy útil para escribir aplicaciones de reactivos (que yo sepa, no se describe ningún otro lugar en tantos detalles)
Por lo que yo sé, Robert Pickering de Beginning F# también tiene algunos ejemplos de interfaz de usuario y también incluye algunos ejemplos de WPF (aunque todavía no tengo el libro, por lo que no sé qué contiene exactamente).
Sin embargo, ninguno de los libros de F # lo hará experto en GUI. Todavía necesitará pasar algún tiempo aprendiendo sobre WinForms/Silverlight/WPF en más detalles. Hay muchos ejemplos en C# en Internet y después de leer uno de los anteriores, debería poder traducirlos directamente a F #, pero comprar un libro específico de tecnología también puede ser una buena idea.
Esto es un poco como decir cómo puedo aprender a pintar con un lápiz;) – Benjol
@Benjol: ¿Por qué? Puedo entender que usted cree que la programación de GUI debe estar en un IDE como VB, C#, Java, Delphi, etc. No creo que sea la única forma, y las respuestas dan buenas opciones. Puede ser que la mejor idea es combinar F # con C# como en uno de los enlaces, pero puede ser que la programación funcional reactiva no sea tan mala. ¿Cual es tu opinion? –