2016-12-19 8 views
6

सी के साथ, मैं एक सामान्य पाठ संपादक (आईजी नैनो) के साथ एक कार्यक्रम लिख सकते हैं औरसंकलित एफ # कार्यक्रम

gcc mySum.c -o mySum 

साथ Lunix टर्मिनल में यह संकलन कमांड लाइन का उपयोग कर एक खिड़की आदानों के लिए पूछ पाने के लिए और आउटपुट लौट रहा है।

#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; 
} 

मैं एफ # में कार्यक्रम का एक ही तरह का उत्पादन कर सकते हैं, दृश्य स्टूडियो/MonoDevelopment बिना?

मुझे नग्न पाठ संपादक के साथ काम करने के लिए बहुत ही निर्देशक मिला, जैसे कि मैं सी के साथ कर रहा हूं। यह मुझे आईडीई द्वारा कम सहायता के साथ सीखने पर अधिक केंद्रित होने के लिए प्रेरित करता है। इसके अलावा, एक पाठ संपादक (जैसे नैनो, या नोटपैड ++ या जो कुछ भी) प्रोजेरा कैन लिखने के लिए fsharpi से अधिक लचीला उपकरण प्रदान करता है। इस तरह, जब कार्यक्रम पूरा हो जाता है, तो मैं इसे संकलक को उसी तरह देता हूं जैसा मैंने उदाहरण में सी के साथ किया था।

मैं

fsharpc mySum.fs 

साथ समारोह

let mySum x y = 
    x + y 

को लागू करने से कह सकते हैं कि, लेकिन मैं यह कैसे प्राप्त करने के लिए प्राप्त करने के लिए असफल। मुझे this reference मिला लेकिन यह थोड़ा उन्नत है।

+1

क्या आप [विजुअल स्टूडियो कोड] (https://code.visualstudio.com/) से अवगत हैं जो लिनक्स पर चलता है और विजुअल स्टूडियो के साथ भ्रमित नहीं होना चाहिए। देखें [Ionide के साथ विजुअल स्टूडियो कोड में F # के साथ प्रारंभ करना] (https://docs.microsoft.com/en-us/dotnet/articles/fsharp/tutorials/getting-started/getting-started-vscode) –

+0

@GuyCoder, मैंने आपके उत्तर में आपके सुझाव को जोड़ा, धन्यवाद। यह वीएस का सबसे बेरबोन संस्करण है, मैंने कभी इसके साथ काम नहीं किया, लेकिन मेरा मानना ​​है कि यह काफी लोकप्रिय और उत्कृष्ट है यदि आप केवल कोड लिखने में रुचि रखते हैं और बाकी की आवश्यकता नहीं है। – Abel

+0

@Abel आपको विजुअल स्टूडियो कोड स्थापित करने पर विचार करना चाहिए। छोटी परियोजनाओं के लिए, यहां तक ​​कि एफ # के बाहर, जैसे जेएस, एचटीएमएल, एक्सएमएल, जेसन, [डीओटी] (http://www.graphviz.org/doc/info/lang.html), प्रोलॉग, असेंबली, मार्कडाउन, ओकैमल, और अन्य चीजें यह मेरे लिए आईडीई पर जाती है। –

उत्तर

4

मुझे लगता है कि आप क्या चाहते हैं FSI (F# Interactive), जिसे लिनक्स/मैकोज़ पर fsharpi कहा जाता है। आप fsharpc का भी उपयोग कर सकते हैं, जो इसे संकलित करेगा, लेकिन यदि आप अभी कोशिश कर रहे हैं, परीक्षण कर रहे हैं या स्क्रिप्टिंग कर रहे हैं तो REPL environment कि fsharpi आपको शायद अधिक सुविधाजनक प्रदान करता है।

लिनक्स can be found here से इसका उपयोग करने के लिए एक परिचय।

ध्यान दें कि लिनक्स में एफ # के साथ कुछ भी करने से पहले आपको कम से कम मोनो इंस्टॉल करना होगा।

संपादित करें: उदाहरण के रूप में, कार्यक्रम आप सी में उल्लेख है, तरीके के असंख्य में व्यक्त किया जा सकता यहाँ एक ही रास्ता (जो सही इनपुट, या अपवाद मान लिया गया है, इस कार्यक्रम का परीक्षण नहीं) है:

[<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 

संपादित करें 2 : आपने अपना प्रश्न संपादित किया और "नैनो" के साथ काम करने की अपनी इच्छा व्यक्त की। वह एक संपादक है जिसे मैं नहीं जानता। आप यह भी कहते हैं कि आप मोनो का उपयोग नहीं करना चाहते हैं। मुझे नहीं पता कि ऐसा क्यों है, जब तक कि आप मोनो डेवलपमेंट का मतलब न लें, क्योंकि मोनो के बिना आप लिनक्स पर एक .NET प्रोग्राम संकलित नहीं कर सकते हैं।

आपके द्वारा उल्लिखित आदेश, gcc mySum.c -o mySum को F # के लिए कमांडलाइन संस्करण में अनुवादित किया जा सकता है। उदाहरण के लिए (fsc.exe के लिए के रूप में ही वाक्य रचना मानते हुए) (स्पष्टता के लिए कई पंक्तियों पर डाल):

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 

इन विकल्पों में से बहुत से संभवतः बाहर छोड़ दिया जा सकता है, लेकिन यह एक मान्य कमांडलाइन, विजुअल स्टूडियो से लिया है।

हालांकि, मैं एक ऐसे संपादक का उपयोग करने का सुझाव देता हूं जो एफ # प्रोग्राम चलाने के लिए पूर्वसंरचित है, जिसमें एक आरईपीएल एकीकृत है, साथ ही एक डीबगर, सिंटैक्स रंग, लाइव टाइप जानकारी (बहुत महत्वपूर्ण है!) और अन्य इंटेलिजेंस फीचर्स, जिन्हें आप विजुअल स्टूडियो (VS Code edition runs on Linux) के साथ प्राप्त करते हैं और मेरे पास याद दिलाने के लिए गाय कोडर पर सौजन्य है) और संभवत: वहां कुछ अन्य एफ # सक्षम संपादक हैं।

+0

उत्तर के लिए धन्यवाद, इससे मुझे समस्या को बेहतर तरीके से परिभाषित करने में मदद मिली। मैं अक्सर 'fsharpi' का उपयोग करता हूं। मैं कार्यक्रम लिखने के लिए, नैनो जैसे टेक्स्ट एडिटर द्वारा प्रदान किए गए अधिक लचीले टूल का उपयोग करना चाहता हूं। एक बार कार्यक्रम पूरा हो जाने के बाद, इसे संकलक को उसी तरह दें जैसा मैंने सी – Worice

+0

के साथ किया था, वास्तव में कोई भी टेक्स्ट एडिटर ठीक है। नैनो सिर्फ वही है जिसका मैं अक्सर उपयोग करता हूं :) – Worice

+0

@Worice, मुझे लगता है कि आपने अपना प्रश्न संपादित किया है। जबकि मैं विजुअल स्टूडियो या मोनो डेवेल का उपयोग करने के लिए _not_ से आपकी प्रेरणा को समझ नहीं पा रहा हूं, मैंने उदाहरण कमांडलाइन देने की कोशिश की है (संभवतः थोड़ा अधिक आवश्यक है)। – Abel