Foros del Web » Programación para mayores de 30 ;) » .NET »

Pasar de C# a F# con Visual Studio Community 2015

Estas en el tema de Pasar de C# a F# con Visual Studio Community 2015 en el foro de .NET en Foros del Web. Hola: Mirando aquí este código en C# , está en C++ y VB .net , pero en F# no veo ni papa. Cambiar de C# ...
  #1 (permalink)  
Antiguo 29/01/2017, 02:51
 
Fecha de Ingreso: mayo-2007
Ubicación: PIC-16F84A
Mensajes: 727
Antigüedad: 16 años, 11 meses
Puntos: 8
Pasar de C# a F# con Visual Studio Community 2015

Hola:

Mirando aquí este código en C#, está en C++ y VB .net, pero en F# no veo ni papa.

Cambiar de C# por F#:
Código:
using System;
using System.IO.Ports;

class PortDataReceived
{
    public static void Main()
    {
        SerialPort mySerialPort = new SerialPort("COM1");

        mySerialPort.BaudRate = 9600;
        mySerialPort.Parity = Parity.None;
        mySerialPort.StopBits = StopBits.One;
        mySerialPort.DataBits = 8;
        mySerialPort.Handshake = Handshake.None;
        mySerialPort.RtsEnable = true;

        mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);

        mySerialPort.Open();

        Console.WriteLine("Press any key to continue...");
        Console.WriteLine();
        Console.ReadKey();
        mySerialPort.Close();
    }

    private static void DataReceivedHandler(
                        object sender,
                        SerialDataReceivedEventArgs e)
    {
        SerialPort sp = (SerialPort)sender;
        string indata = sp.ReadExisting();
        Console.WriteLine("Data Received:");
        Console.Write(indata);
    }
}
He intentado encontrar tutoriales de F# en español, más bien estáenel MSDN de los foros oficiales.
https://msdn.microsoft.com/es-es/lib...v=vs.110).aspx
https://msdn.microsoft.com/es-es/lib...v=vs.110).aspx
https://msdn.microsoft.com/es-es/lib...v=vs.110).aspx

Para saber de que va está bien. Para hacer el minichat de arriba de C# a F# lo veo más complicado.

Vídeos del 2009, mejor algo que nada en español.
[youtube=640,360]https://www.youtube.com/watch?v=Tbe-b941xlw[/youtube]
Segunda parte.

Casi no hay nada de video tutoriales en español, de PowerShell está habiendo más aunque este último es másbien para tareas administrativas.

¿Alguna ayuda?

Un cordial saludo.

PD: Como se nota que no mola a lagente F# y si otros lenguajes, sobre todo, hoy en día se usa VB 6 en el cual no se recomienda para equipos actuales y no lo sueltan ni por asomo. ;)
__________________
Meta Shell, VERSIÓN 1.2.2
Descargar
  #2 (permalink)  
Antiguo 29/01/2017, 09:40
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: Pasar de C# a F# con Visual Studio Community 2015

El código quedaría asi:

Código F#:
Ver original
  1. // la keyword open en F# es equivalente a using en C# para referenciar namespaces que vamos a utilizar
  2. open System
  3. open System.IO.Ports
  4.  
  5. // En F#, una aplicación de consola tiene una funció main, firmado con el atributo FSharp.Core.EntryPointAttribute para marcar el punto de entrada principal
  6. [<EntryPoint>]
  7. let main argv =
  8.     // Es importante mencionar que F# es whitespace-sensitive, en decir, la indentación de las instrucciones se usa para delimitar scopes, en lugar de usar llaves { } como en otros lenguajes.
  9.    
  10.     // la instrucción use en F# es similar al bloque using {} en C#, funciona con los tipos que implementan System.IDisposable, y lo que hace es llamar al método Dispose() cuando el objeto sale de scope
  11.     use mySerialPort =
  12.  
  13.         // En F#, se puede combinar la invocación a un constructor parametrizado, con la sintáxis de inicialización de propiedades.
  14.         // En este caso, estamos llamando al constructor SerialPort(string) y luego seteando varias propiedades del objeto.
  15.         new SerialPort("COM1",
  16.             BaudRate = 9600,
  17.             Parity = Parity.None,
  18.             StopBits = StopBits.One,
  19.             DataBits = 8,
  20.             Handshake = Handshake.None,
  21.             RtsEnable = true)
  22.  
  23.     // En F#, los eventos se capturan con AddHandler() en lugar de +=
  24.     mySerialPort.DataReceived.AddHandler(
  25.        
  26.         // Este constructor crea una instancia del delegado que maneja el evento, usando una función o expresión lambda de F#
  27.         // Cabe mencionar que el tipo del parámetro e no está especificado, sin embargo el compilador de F# es suficientemente inteligente para inferirlo. Esto ocurre en muchos otros casos en F#.
  28.         SerialDataReceivedEventHandler(fun (sender: obj) e ->
  29.            
  30.             // esta sintáxis es un runtime cast, equivalente a (SerialPort)sender en C#
  31.             let sp = sender :?> SerialPort
  32.             let indata = sp.ReadExisting()
  33.             Console.WriteLine("Data Received:")
  34.             Console.Write(indata)
  35.         )
  36.     )
  37.  
  38.     mySerialPort.Open()
  39.  
  40.     Console.WriteLine("Press any key to continue...")
  41.     Console.WriteLine()
  42.     Console.ReadKey() |> ignore
  43.  
  44.     mySerialPort.Close()
  45.  
  46.     // la función main() en una aplicación de consola de F# debe devolver un código de resultado, generalmente 0 para indicar que no hay error.
  47.     0

Cita:
Iniciado por REHome Ver Mensaje
He intentado encontrar tutoriales de F# en español
En general y no solo para F# y .NET sino para todos los lenguajes y plataformas, la documentación más fehaciente está en inglés. Si vas a programar y aprender a usar lenguajes, frameworks y plataformas por tu propia cuenta, te conviene olvidarte de buscar información en español e ir directamente a los originales en inglés.

Cita:
Iniciado por REHome Ver Mensaje
PD: Como se nota que no mola a lagente F# y si otros lenguajes, sobre todo, hoy en día se usa VB 6 en el cual no se recomienda para equipos actuales y no lo sueltan ni por asomo. ;)
Hay varias razones para esto:
1 - Inercia: la gente tiende a "quedarse con lo que ya sabe" y como F# es un lenguaje bastante diferente a la familia de los lenguajes que comparten la sintáxis de C, como java, C#, C++, etc a algunos les resulta muy "extraño".
2 - Cambio de paradigma: mucha gente está muy encasillada en Object Oriented y cambiar a un paradigma funcional con todo lo que eso implica es un salto que no es fácil de hacer. A mi me tomó meses de ver código F# escrito por profesionales con experiencia para entender la mentalidad de crear un programa componiendo funciones en lugar de usar herencia y jerarquías de clases como en OO.
3 - Demanda en el mercado: si bien ahora está surgiendo muy lentamente, la realidad es que hay poca demanda en el mercado para lenguajes funcionales, precisamente por causa del punto 1, ya que al no haber mucha gente que pueda programar en lenguajes funcionales, las empresas los evitan, ya que es difícil conseguir programadores para que mantengan el código. Debido a esta escasez en el mercado, los puestos de trabajo que requieren F# son altamente remunerados. En 2016, F# fue elegido como la tecnología de Desarrollo de Software mejor paga a nivel mundial, y la 4ta en Estados Unidos. Fuente: http://stackoverflow.com/research/de...op-paying-tech

Etiquetas: asp, community, studio, vb, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:24.