2016-12-19 65 views
6

z C, można napisać program z rodzajowego edytorze tekstowym (Ig nano) i skompilować je w terminalu lunix zkompilacji F Program # w systemie Linux za pomocą wiersza poleceń

gcc mySum.c -o mySum 

dostać się okno z prośbą o wejściach i zwracanie danych wyjściowych.

#include <stdio.h> 

int main(){ 
     int x; 
     int y; 
     int sum; 
     printf("Program that sums two numbers.\n\nPlease type the first one:\n"); 
     scanf("%d", &x); 
     printf("Type the second one:\n"); 
     scanf("%d", &y); 
     sum = x + y; 
     printf("The sum of %d and %d is %d\n", x, y, sum); 
return 0; 
} 

Czy mogę wyprodukować ten sam program w języku F #, bez Visual Studio/MonoDevelopment?

Znalazłem bardzo pouczającą dla mnie pracę z nagim edytorem tekstów, tak jak robię z C. To nakłada na mnie bycie bardziej skoncentrowanym na nauce, z mniejszą pomocą IDE. Co więcej, edytor tekstu (taki jak nano, notepad ++ lub cokolwiek innego) zapewnia bardziej elastyczne narzędzia niż pisanie progra-canmu przez fsharpi. W ten sposób, gdy program zostanie ukończony, przekazuję go kompilatorowi w taki sam sposób jak w przykładzie C.

powiedziałbym poprzez wdrożenie funkcji

let mySum x y = 
    x + y 

z

fsharpc mySum.fs 

ale nie udało mi się dostać, jak je osiągnąć. Znalazłem this reference, ale jest trochę zaawansowane.

+1

Czy znasz kod Visual Studio (https://code.visualstudio.com/), który działa w systemie Linux i nie należy go mylić z Visual Studio. Zobacz [Pierwsze kroki z F # w Visual Studio Code with Ionide] (https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tutorials/getting-started/getting-started-vscode) –

+0

@GuyCoder, Dodałem twoją sugestię do mojej odpowiedzi, dzięki. Jest to najbardziej bezbłędna wersja VS, nigdy z nim nie współpracowałem, ale uważam, że jest dość popularna i doskonała, jeśli interesuje cię pisanie kodu i nie ma potrzeby reszty. – Abel

+0

@Abel Powinieneś rozważyć zainstalowanie kodu Visual Studio. Dla szybkich i małych projektów, nawet poza F #, takich jak JS, HTML, XML, json, [DOT] (http://www.graphviz.org/doc/info/lang.html), Prolog, montaż, Markdown, OCaml i inne rzeczy to dla mnie IDE. –

Odpowiedz

4

Myślę, że to, czego chcesz, to FSI (F# Interactive), które nazywa się fsharpi na Linux/MacOS. Możesz także użyć fsharpc, który go skompiluje, ale jeśli po prostu wypróbujesz, przetestujesz lub wykonasz skrypt, wtedy REPL environment, który daje fsharpi, jest prawdopodobnie wygodniejsze.

Wprowadzenie do korzystania z niego z Linuksa can be found here.

Pamiętaj, że musisz mieć przynajmniej zainstalowany Mono, zanim będziesz mógł coś zrobić z F # w Linuksie.

EDIT: Jako ilustracja, program można wymienić w C może być wyrażona w niezliczonej ilości sposobów, oto jeden sposób (co zakłada odpowiednie wejście lub wyjątku, program nie testowane):

[<EntryPoint>] 
let main argv = 
    let scani() = 
     printfn "Give a number: " 
     Console.ReadLine() 
     |> Int64.Parse 

    let (x, y) = (scani(), scani()) 
    printfn "The sum of %d and %d is %d" x y (x + y) 

    // wait before returning prompt 
    printfn "Hit any key to continue" 
    Console.ReadKey() |> ignore 

EDIT 2 : zredagowałeś swoje pytanie i wyraziłeś chęć pracy z "Nano". To jest edytor, którego nie znam. Mówisz też, że nie chcesz używać Mono. Nie wiem, dlaczego tak jest, chyba że masz na myśli MonoDevelop, ponieważ bez Mono nie możesz skompilować programu .NET na Linuksie.

Polecenie, o którym wspomniałeś, gcc mySum.c -o mySum można przetłumaczyć na wariant linii poleceń dla F #. Na przykład (zakładając taką samą składnię jak dla fsc.exe) (umieścić na wielu linii dla jasności):

fsharpc.exe 
-o:MyProgram.exe 
--debug:pdbonly 
--noframework 
--optimize+ 
--platform:anycpu32bitpreferred 
-r:"PathTo\FSharp.Core.dll" 
-r:"PathTo\mscorlib.dll" 
-r:"PathToYourReferencedOtherDlls\SomeClassLib.dll 
-r:"PathTo\System.Core.dll" 
-r:"PathTo\System.dll" 
--target:exe 
--warn:3 
file1.fs file2.fs file3.fs 

Wiele z tych opcji można ewentualnie pominąć, ale czy jest to prawidłowy poleceń, zaczerpnięte z Visual Studio.

Chciałbym jednak zaproponować użycie edytora, który jest wstępnie skonfigurowany do uruchamiania programów F #, które ma zintegrowaną REPL, jak również debuggera, kolorowanie składni, informacje typu na żywo (bardzo ważne!) i inne funkcje intellisense, które dostajesz z Visual Studio (VS Code edition runs on Linux i ma świetny edytor, dzięki uprzejmości Guy Coder za przypomnienie) i ewentualnie inne edytory z włączoną opcją F #.

+0

Dzięki za odpowiedź, pomogło mi to lepiej zdefiniować problem. Często używam 'fsharpi'. Chciałbym użyć bardziej elastycznych narzędzi dostarczanych przez edytor tekstów, takich jak nano, do napisania programu. Gdy program zostanie ukończony, przekaż go kompilatorowi w taki sam sposób, jak w przypadku C. – Worice

+0

Dowolny edytor tekstu jest w porządku. Nano jest tym, którego używam częściej :) – Worice

+0

@Worice, widzę, że edytowałeś swoje pytanie. Chociaż nie rozumiem twojej motywacji z _nie_ używania programu Visual Studio lub MonoDevelop, próbowałem podać przykładowy wiersz poleceń (może być nieco bardziej użyty niż to konieczne). – Abel

Powiązane problemy