PDA

View Full Version : در مورد زبان F# چی می دونید؟



shomalgan
دوشنبه 06 اسفند 1386, 23:15 عصر
من تازه فهمیدم همچین چیزی در دات نت بوجود اومده . می خواستم بپرسم کسی ازش اطلاع داره؟

mehdi_kamari
سه شنبه 07 اسفند 1386, 00:03 صبح
F#.NET
--------------------------------------------------------------------------------------



Combining the efficiency, scripting, strong typing and productivity of ML with the stability, libraries, cross-language working and tools of .NET.

F# is a programming language that provides the much sought-after combination of type safety, performance and scripting, with all the advantages of running on a high-quality, well-supported modern runtime system. F# gives you a combination of

interactive scripting (http://www.strangelights.com/fsharp/Wiki/default.aspx/FSharpWiki.FSI) like Python,
the foundations for an interactive data visualization environment (http://blogs.msdn.com/dsyme/archive/2006/02/19/534925.aspx) like MATLAB,
the strong type inference and safety (http://research.microsoft.com/fsharp/manual/quicktour.aspx#QuickTourTypes) of ML,
a cross-compiling compatible core (http://research.microsoft.com/fsharp/manual/ml-compat.aspx) shared with the popular OCaml language,
a performance profile (http://research.microsoft.com/fsharp/perf.aspx) like that of C#,
easy access to the entire range of powerful .NET libraries and database tools (http://msdn2.microsoft.com/en-us/library/d11h6832%28vs.71%29.aspx),
a foundational simplicity (http://en.wikipedia.org/wiki/Lambda_calculus) with similar roots to Scheme,
the option of a top-rate Visual Studio (http://blogs.msdn.com/dsyme/archive/2005/01/11/WorkInProgress.aspx) integration,
the experience of a first-class team (http://research.microsoft.com/aboutmsr/labs/cambridge/default.aspx) of language researchers with a track record (http://research.microsoft.com/projects/clrgen/) of delivering high-quality implementations,
the speed of native code execution on the concurrent (http://msdn2.microsoft.com/en-us/library/system.threading%28vs.71%29.aspx), portable (http://www.go-mono.com/), and distributed (http://msdn2.microsoft.com/en-gb/webservices/Aa740663.aspx) .NET Framework (http://msdn.microsoft.com/netframework).

The only language to provide a combination like this is F# (pronounced FSharp) - a scripted/functional/imperative/object-oriented programming language that is a fantastic basis for many practical scientific, engineering and web-based programming tasks.

F# is a pragmatically-oriented variant of ML that shares a core language with OCaml (http://caml.inria.fr/). F# programs run on top of the .NET Framework (http://msdn.microsoft.com/netframework). Unlike other scripting languages it executes at or near the speed of C# and C++, making use of the performance that comes through strong typing. Unlike many statically-typed languages it also supports many dynamic language techniques, such as property discovery and reflection where needed. F# includes extensions for working across languages and for object-oriented programming, and it works seamlessly with other .NET programming languages and tools.

For further information, read about F# in more detail (http://barnamenevis.org/forum/about.aspx), download the F# distribution (http://barnamenevis.org/forum/release.aspx), read the getting started (http://barnamenevis.org/forum/starting.aspx) pages (a guide to installation and running your first program), go to the F# Manual (http://barnamenevis.org/forum/manual/default.aspx), and learn about the growing F# Community (http://barnamenevis.org/forum/community.aspx). A short FAQ (http://barnamenevis.org/forum/faq.aspx) is also included on this site.

Some Starting points
About F# (http://barnamenevis.org/forum/about.aspx) and comparison with OCaml (http://barnamenevis.org/forum/language-compare.aspx), talks (http://barnamenevis.org/forum/talks.aspx), performance (http://barnamenevis.org/forum/perf.aspx) and the FAQ (http://barnamenevis.org/forum/faq.aspx).
Getting started (http://barnamenevis.org/forum/starting.aspx) is a guide to installation and running your first program.
The F# Downloads (http://barnamenevis.org/forum/release.aspx) page contains release and download information for the Microsoft Research implementation of F#.
The F# Manual (http://barnamenevis.org/forum/manual/default.aspx) focuses on F#-specific features.
The F# Library Reference Documentation (http://barnamenevis.org/forum/manual/namespaces.html) for F# specific library reference.
The F# Community (http://barnamenevis.org/forum/community.aspx) page lists key F# sites and projects.

mehdi_kamari
سه شنبه 07 اسفند 1386, 00:08 صبح
What is F#?

F# is a typed functional programming language for the .NET Framework (http://en.wikipedia.org/wiki/.NET_Framework). It combines the succinctness, expressivity, and compositionality of typed functional programming with the runtime support, libraries, interoperability, tools and object model of .NET. F# stems from the ML family of languages and has a core language compatible with that of OCaml (http://caml.inria.fr/), though also draws from C# (http://msdn2.microsoft.com/en-gb/vcsharp/default.aspx) and Haskell (http://www.haskell.org/haskellwiki/Haskell). F# was designed from the ground up to be a first-class citizen on .NET, giving smooth interoperability with other .NET languages. For example, C# and F# can call each other directly. This means that F# has immediate access to all the .NET Framework APIs (http://msdn2.microsoft.com/en-gb/netframework/default.aspx), including, for example, Windows Presentation Foundation (http://wpf.netfx3.com/) and DirectX (http://msdn.microsoft.com/directx/). Similarly, libraries developed in F# may be used from other .NET languages.

Since F# and OCaml share a similar core language, some OCaml libraries and applications can cross-compile either directly or with minor conditionally-compiled changes. This provides a path to cross-compile and/or port existing OCaml code to .NET, and also allows programmers to transfer skills between these languages. A major focus of the project has been to extend the reach of OCaml-like languages into arenas where they have not traditionally been used. Throughout the project the designers of F# are grateful for the support and encouragement of Xavier Leroy and others in the OCaml community.

F# As a Language:

F# includes support for the foundational features of functional programming including tuples, lists, options, function values, local function definitions, pattern matching and sequence expressions.
The powerful type inference mechanisms of F# allow code to be both succinct and yet fully type-checked.
F# also includes support for advanced functional programming constructs such as active patterns and computation expressions (http://blogs.msdn.com/dsyme/archive/2007/09/22/some-details-on-f-computation-expressions-aka-monadic-or-workflow-syntax.aspx). Computation expressions can be used to express data queries and client/server modalities in AJAX-style web programming. They enable programmers to write succinct and robust reactive agents through the use of asynchronous workflows (http://blogs.msdn.com/dsyme/archive/2007/10/11/introducing-f-asynchronous-workflows.aspx). Computation expressions are related to ``monads'' in Haskell.
F# embraces object-oriented programming and includes support for type-inferred, succinct descriptions of object types.
F# allows types and values in an F# program to be accessed from other .NET languages in a predictable and friendly way.
F# includes support for a form of meta-programming, inspired by LINQ (http://barnamenevis.org/forum/msdn.microsoft.com/data/ref/linq/). This allows data queries to be expressed and type-checked in F# code and then dynamically compiled and translated to target languages such as SQL using the LinqToSql framework.
F# fully supports .NET generics and the language was designed partly with this in mind.
Through .NET, F# supports advanced language and runtime features such as Unicode strings, dynamic linking, preemptive multithreading, and SMP support.

F# for Developers:

The F# Interactive (http://research.microsoft.com/fsharp/manual/compiler.aspx) environment fsi.exe supports top-level development and exploration of the dynamics of your code and environment.
The command line compiler fsc.exe supports separate compilation, debug information and optimization.
F# comes with F# for Visual Studio (http://barnamenevis.org/forum/vsmode.aspx), an extension to Visual Studio 2005 (http://lab.msdn.microsoft.com/vs2005/) that supports features such as an integrated build/debug environment, graphical debugging, interactive syntax highlighting, parsing and typechecking, IntelliSense, CodeSense, MethodTips and a project system.
F# can be used with tools from the .NET Framework, Microsoft's Visual Studio and many other .NET development tools.
F# comes with an ML compatibility library (http://barnamenevis.org/forum/manual/library.aspx) that approximates the OCaml 3.06 libraries. This means you don't have to use .NET libraries if it is not appropriate. It is possible to write large and sophisticated applications that can be cross-compiled as OCaml code or F# code, and we take this mode of use seriously.

amir_saniyan
سه شنبه 07 اسفند 1386, 09:32 صبح
سلام

مقاله کامل F#:

http://msdn.microsoft.com/msdnmag/issues/08/LA/FSharpIntro/default.aspx

F# یک زبان برنامه نویسی تابعی (Functional) است که اون رو می‌تونید از اینجا دانلود کنید:
research.microsoft.com/fsharp/fsharp.aspx (http://research.microsoft.com/fsharp/fsharp.aspx)

این هم عکسش:

http://msdn.microsoft.com/msdnmag/issues/08/LA/FSharpIntro/fig01_L.gif (javascript:ToggleImages('352677002', '208400002');)

به نظر من که مسخره است :)

golbafan
چهارشنبه 20 خرداد 1388, 20:35 عصر
فارسی بنویسید

mehdi_kamari
چهارشنبه 20 خرداد 1388, 20:58 عصر
دوست من این تاپیک مربوط به 2 سال پیش هستش