红联Linux门户
Linux帮助

F# 4.0发布,标准化Array, List和Seq模块

发布时间:2015-07-21 09:15:41来源:红联作者:empast
Visual F# 4.0 发布,此版本现已提供下载:

https://www.visualstudio.com/downloads/download-visual-studio-vs

F# 4.0 包含新的语言特性:

构造函数作为一级函数

可变值的使用简化

支持高维的数组

支持方法中的静态参数

简化列表的语法

简化 printf 函数的使用

GC 优化提升性能

API 改进:

标准化和扩展 Array, List 和 Seq 模块

New APIs for 4.0: chunkBySize, contains, except, findBack, findInstanceBack, indexed, item, mapFold, mapFoldBack, sortByDescending, sortDescending, splitInto, tryFindBack, tryFindIndexBack, tryHead, tryItem, tryLast

其他新 API

Option.filter, Option.toObj, Option.ofObj, Option.toNullable, Option.ofNullable

String.filter

Checked.int8, Checked.uint8

Async.AwaitTask (non-generic)

WebClient.AsyncDownloadFile, WebClient.AsyncDownloadData

tryUnbox, isNull

其他值得关注的改进:

New active pattern to match constant Decimal in quotations

Slicing support for lists

Support for consuming high-rank (> 4) arrays

Support for units of measure in printf-family functions

Support for constructors/class names as first-class functions

Improved exception stack traces in async code

Automatic mutable/ref conversion

Support for static arguments to provided methods

Support for non-nullable provided types

Added NonStructuralComparison module containing non-structural comparison operators

Support for rational exponents in units of measure

Give fsi.exe, fsiAnyCpi.exe nice icons

Microsoft. optional in namepsace paths from FSharp.Core

Support for extension properties in object initializers

Pre-support (not yet used) for additional nativeptr intrinsics

Simplified, more robust resolution of type references in quotations

Support for inheritance of types that have multiple interface instantiations

Extended preprocessor grammar

Support for implicit quotation of expressions used as method arguments

Support for multiple properties in []

Eliminate tuple allocation for implicitly returned formal arguments

Perf: fsc.exe now uses GCLatencyMode.Batch

Perf: Improved hash/compare/distinctBy/groupBy performance

Perf: Seq.toArray perf improvement

Perf: Use OptimizedClosures.FSharpFunc in seq.fs where applicable

Perf: Use literals and mutable variables instead of ref cells for better performance in SHA1 calc

Perf: Use smart blend of System.Array.Copy and iterative copy for array copies

Perf: Change Seq.toList to mutation-based to remove reliance on List.rev

Perf: Change pdbClose to test if files are locked before inducing GCs

Perf: Use server GC mode for compiler

Visual Studio 方面的改进:

Updated all templates (except tutorial) to include AssemblyInfo.fs setup in the same manner as default C# project templates

Add keyboard shortcuts for FSI reset and clear all

Improved debugger view for Map values

Improved performance reading stdout/stderr from fsi.exe to F# Interactive window

Support for VS project up-to-date check

Improved project template descriptions, make it clearer how to target Xamarin platforms

Intellisense completion in object initializers

Add menu entry "Open folder in File Explorer" on folder nodes

Intellisense completion for named arguments

Alt+Enter sends current line of code to interactive if there is no selection

Support for debugging F# scripts with the VS debugger

Add support for hexadecimal values (like 0xFF) ??to MSBuild property BaseAddress

Updated menu icons used for F# interactive to align with other VS interactive windows

此外还有写 bug 修复。

F#是由微软发展的为微软.NET语言提供运行环境的程序设计语言,是函数编程语言(FP,Functional Programming),函数编程语言最重要的基础是Lambda Calculus。它是基于OCaml的,而OCaml是基于ML函 数程式语言。有时F# 和 OCaml 的程式是可以交互编译的。

F#已经接近成熟,支援Higher-Order Function、Currying、Lazy Evaluation、Continuations、Pattern Matching、Closure、List Processing、Meta-Programming。这是一个用于显示.NET在不同编程语言间互通的程序设计,可以被.NET中的任意其它代码编 译和调用。

F#将被集成在Visual Studio 2010中,含有对.Net Framework的完全支持。

软件详情:https://github.com/Microsoft/visualfsharp/blob/fsharp4/CHANGELOG.md

来自:开源中国社区
文章评论

共有 0 条评论