คำถามติดแท็ก f#

F # เป็นภาษาเชิงวัตถุที่ใช้งานได้สั้นกระชับและมีประสิทธิภาพสำหรับ. NET ซึ่งช่วยให้คุณเขียนโค้ดง่ายๆเพื่อแก้ปัญหาที่ซับซ้อน

3
ไวยากรณ์การเริ่มต้นอ็อบเจ็กต์
ฉันเพิ่งเริ่มต้นด้วย F # และฉันไม่พบไวยากรณ์ที่จะทำการเริ่มต้นวัตถุเหมือนใน C # 3 เช่นให้สิ่งนี้: public class Person { public DateTime BirthDate { get; set; } public string Name { get; set; } } ฉันจะเขียนสิ่งต่อไปนี้ใน F # ได้อย่างไร: var p = new Person { Name = "John", BirthDate = DateTime.Now };

8
ประโยชน์ของการใช้ C # vs F # หรือ F # vs C # คืออะไร? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ล็อค คำถามนี้และคำตอบถูกล็อกเนื่องจากคำถามไม่ตรงประเด็น แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ยังไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันทำงานให้กับ บริษัท เทคโนโลยีที่ทำต้นแบบมากกว่าการจัดส่งผลิตภัณฑ์ ฉันเพิ่งถูกถามว่าอะไรคือความแตกต่างระหว่าง C # และ F # ทำไม MS จึงสร้าง F # และสถานการณ์ใดที่จะดีกว่า C # ฉันใช้ภาษานี้มาระยะหนึ่งแล้วและฉันชอบมันมากดังนั้นฉันจึงสามารถพูดคุยเกี่ยวกับคุณสมบัติที่ยอดเยี่ยมของ F # ได้อย่างง่ายดาย แต่ฉันขาดประสบการณ์ใน C # เพื่อบอกว่าทำไมเราควรใช้ภาษาอื่น ประโยชน์ของการใช้ C # vs F # หรือ F # vs C # คืออะไร?
93 c#  .net  f# 


8
F # อย่างชัดเจนตรงกับไวยากรณ์ของฟังก์ชัน
ขออภัยเกี่ยวกับชื่อเรื่องที่คลุมเครือ แต่ส่วนหนึ่งของคำถามนี้เรียกว่ารูปแบบไวยากรณ์ทั้งสองนี้: let foo1 x = match x with | 1 -> "one" | _ -> "not one" let foo2 = function | 1 -> "one" | _ -> "not one" อีกส่วนหนึ่งคือความแตกต่างระหว่างทั้งสองและเมื่อใดที่ฉันต้องการใช้อย่างใดอย่างหนึ่ง
90 syntax  f# 

5
ประเภทที่สูงกว่ามีประโยชน์เมื่อใด
ฉันทำ dev ใน F # มาระยะหนึ่งแล้วและฉันก็ชอบมัน อย่างไรก็ตามคำศัพท์หนึ่งที่ฉันรู้ว่าไม่มีอยู่ใน F # เป็นประเภทที่สูงกว่า ฉันได้อ่านเนื้อหาเกี่ยวกับประเภทที่สูงกว่าและฉันคิดว่าฉันเข้าใจคำจำกัดความของพวกเขา ฉันไม่แน่ใจว่าเหตุใดจึงมีประโยชน์ ใครช่วยยกตัวอย่างว่าประเภทที่สูงกว่าทำให้ง่ายใน Scala หรือ Haskell ที่ต้องใช้วิธีแก้ปัญหาใน F # สำหรับตัวอย่างเหล่านี้วิธีแก้ปัญหาจะเป็นอย่างไรหากไม่มีประเภทสูงกว่า (หรือในทางกลับกันใน F #) บางทีฉันอาจจะชินกับการทำงานกับมันมากจนฉันไม่สังเกตเห็นว่าไม่มีฟีเจอร์นั้น (ฉันคิดว่า) ฉันเข้าใจว่าแทนที่จะเป็นประเภทที่ดีกว่าmyList |> List.map fหรือmyList |> Seq.map f |> Seq.toListสูงกว่าช่วยให้คุณเขียนได้ง่ายๆmyList |> map fและมันจะส่งกลับ a List. มันเยี่ยมมาก (สมมติว่าถูกต้อง) แต่ดูเหมือนจะไม่สุภาพ? (และไม่สามารถทำได้ง่ายๆโดยปล่อยให้ฟังก์ชันโอเวอร์โหลด) ฉันมักจะแปลงเป็นSeqอย่างไรก็ตามจากนั้นฉันสามารถแปลงเป็นอะไรก็ได้ที่ฉันต้องการในภายหลัง อีกครั้งบางทีฉันก็ชินเกินไปที่จะทำงานกับมัน แต่จะมีตัวอย่างที่ใดประเภทสูง kinded จริงๆช่วยให้คุณประหยัดทั้งในการกดแป้นพิมพ์หรือในรูปแบบความปลอดภัย?

1
Async POST ล้มเหลวใน WP7 และ F #
เมื่อฉันทำlet! read = from.AsyncRead bufใน F # มันจะบล็อกและไม่กลับมาจนกว่าซ็อกเก็ต TCP จะตาย ทำไม? และฉันจะแก้ไขได้อย่างไร? รหัส: module StreamUtil open System.IO /// copy from 'from' stream to 'toStream' let (|>>) (from : Stream) (toStream : Stream) = let buf = Array.zeroCreate<byte> 1024 let rec doBlock () = async { let! read = from.AsyncRead buf …

1
อะไรคือความแตกต่างระหว่างเนมสเปซและโมดูลใน F #?
ฉันเพิ่งเริ่มเรียนรู้ F # (โดยมีประสบการณ์เกี่ยวกับ. NET มาก่อนเล็กน้อย) ดังนั้นโปรดยกโทษให้ฉันสำหรับสิ่งที่อาจเป็นคำถามง่ายๆ: เนมสเปซและโมดูลใน F # แตกต่างกันอย่างไร ขอบคุณ เดฟ แก้ไข: ขอบคุณสำหรับคำตอบ Brian นั่นคือสิ่งที่ฉันอยากรู้ แค่คำชี้แจง: คุณสามารถเปิดเนมสเปซได้เช่นกัน (คล้ายกับ C # โดยใช้คำสั่ง)?
87 f#  module  namespaces 

4
เป็นไปได้ไหมที่จะเขียนคอมไพเลอร์ JIT (ไปยังโค้ดเนทีฟ) ทั้งหมดในภาษา. NET ที่มีการจัดการ
ฉันคิดว่าจะเขียนคอมไพเลอร์ JIT และฉันแค่สงสัยว่าในทางทฤษฎีเป็นไปได้หรือไม่ที่จะเขียนสิ่งทั้งหมดในโค้ดที่มีการจัดการ โดยเฉพาะอย่างยิ่งเมื่อคุณสร้างแอสเซมเบลอร์ในอาร์เรย์ไบต์แล้วคุณจะเข้าสู่แอสเซมเบลอร์เพื่อเริ่มต้นการดำเนินการได้อย่างไร?
84 c#  .net  f#  jit 

2
การสรุปรายการระดับความซ้อนโดยพลการใน F #
ฉันกำลังพยายามสร้างฟังก์ชัน F # ที่จะส่งคืนผลรวมของรายการintของการซ้อนกันโดยพลการ กล่าวคือ มันจะทำงานให้list<int>เป็นและlist<list<int>>list<list<list<list<list<list<int>>>>>> ใน Haskell ฉันจะเขียนสิ่งที่ชอบ: class HasSum a where getSum :: a -> Integer instance HasSum Integer where getSum = id instance HasSum a => HasSum [a] where getSum = sum . map getSum ซึ่งจะให้ฉันทำ: list :: a -> [a] list = replicate 6 nestedList :: …
10 haskell  f# 

1
ทำไมถึงมีฟังก์ชั่น `map` มากมายสำหรับประเภทต่าง ๆ ใน F #
ฉันกำลังเรียนรู้ F # ฉันเริ่ม FP กับ Haskell และฉันอยากรู้เรื่องนี้ เนื่องจาก F # เป็นภาษา. NET ดูเหมือนว่าจะเหมาะสมกว่าสำหรับฉันที่จะประกาศอินเทอร์เฟซเช่นMappableเดียวกับFunctorคลาสประเภทHaskell แต่เช่นเดียวกับภาพข้างบนฟังก์ชั่น F # จะถูกแยกและใช้งานด้วยตัวมันเอง วัตถุประสงค์การออกแบบของการออกแบบดังกล่าวคืออะไร? สำหรับฉันการแนะนำMappable.mapและใช้สิ่งนี้กับข้อมูลแต่ละประเภทจะสะดวกกว่า
9 .net  f# 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.