From 19e598ca3222ff8e57188ea90e22428d13ca71bc Mon Sep 17 00:00:00 2001 From: Wade Pickett Date: Thu, 6 Dec 2018 17:37:09 -0800 Subject: [PATCH 1/2] Update docfx.json SEO improvement: Adding a title suffix of "- F#" to content in the tutorials folder and the language-reference folder. --- docfx.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docfx.json b/docfx.json index 8c62916cad996..66f7358310c55 100644 --- a/docfx.json +++ b/docfx.json @@ -201,6 +201,10 @@ "docs/standard/serverless-architecture/**/**.md": "dotnet-ebooks", "docs/standard/security/**/**.md": "dotnet-security", "docs/visual-basic/language-reference/error-messages/**/**.md": "vb-diagnostics" + }, + "titleSuffix":{ + "docs/docs/fsharp/tutorials/**.md": "F#", + "docs/docs/fsharp/language-reference/**.md": "F#" } }, "dest": "_site", From 541839f192a9431927d83a07d9fb18aa397a884c Mon Sep 17 00:00:00 2001 From: Maira Wenzel Date: Mon, 10 Dec 2018 12:31:41 -0800 Subject: [PATCH 2/2] topic changes --- docs/fsharp/language-reference/abstract-classes.md | 5 +++-- docs/fsharp/language-reference/access-control.md | 5 +++-- docs/fsharp/language-reference/active-patterns.md | 5 +++-- docs/fsharp/language-reference/arrays.md | 5 +++-- docs/fsharp/language-reference/assertions.md | 5 +++-- docs/fsharp/language-reference/asynchronous-workflows.md | 5 +++-- docs/fsharp/language-reference/attributes.md | 6 ++++-- docs/fsharp/language-reference/basic-types.md | 5 +++-- docs/fsharp/language-reference/byrefs.md | 6 +++--- docs/fsharp/language-reference/caller-information.md | 9 +++++---- .../fsharp/language-reference/casting-and-conversions.md | 5 +++-- docs/fsharp/language-reference/classes.md | 5 +++-- docs/fsharp/language-reference/code-quotations.md | 5 +++-- docs/fsharp/language-reference/compiler-directives.md | 5 +++-- docs/fsharp/language-reference/compiler-options.md | 6 +++--- .../fsharp/language-reference/computation-expressions.md | 5 +++-- .../conditional-expressions-if-then-else.md | 5 +++-- .../copy-and-update-record-expressions.md | 5 +++-- docs/fsharp/language-reference/delegates.md | 5 +++-- docs/fsharp/language-reference/discriminated-unions.md | 5 +++-- docs/fsharp/language-reference/enumerations.md | 5 +++-- .../exception-handling/exception-types.md | 5 +++-- .../language-reference/exception-handling/index.md | 7 +++---- .../exception-handling/the-failwith-function.md | 5 +++-- .../exception-handling/the-invalidArg-function.md | 5 +++-- .../exception-handling/the-raise-function.md | 5 +++-- .../exception-handling/the-try-finally-expression.md | 5 +++-- .../exception-handling/the-try-with-expression.md | 5 +++-- docs/fsharp/language-reference/fixed.md | 5 +++-- docs/fsharp/language-reference/flexible-types.md | 5 +++-- docs/fsharp/language-reference/functions/do-bindings.md | 5 +++-- docs/fsharp/language-reference/functions/entry-point.md | 5 +++-- .../language-reference/functions/external-functions.md | 5 +++-- docs/fsharp/language-reference/functions/index.md | 5 +++-- .../language-reference/functions/inline-functions.md | 5 +++-- .../functions/lambda-expressions-the-fun-keyword.md | 5 +++-- docs/fsharp/language-reference/functions/let-bindings.md | 5 +++-- .../functions/recursive-functions-the-rec-keyword.md | 5 +++-- .../generics/automatic-generalization.md | 5 +++-- docs/fsharp/language-reference/generics/constraints.md | 5 +++-- docs/fsharp/language-reference/generics/index.md | 5 +++-- .../generics/statically-resolved-type-parameters.md | 5 +++-- .../import-declarations-the-open-keyword.md | 5 +++-- docs/fsharp/language-reference/inheritance.md | 5 +++-- docs/fsharp/language-reference/interfaces.md | 5 +++-- docs/fsharp/language-reference/keyword-reference.md | 5 +++-- docs/fsharp/language-reference/lazy-computations.md | 5 +++-- docs/fsharp/language-reference/lists.md | 5 +++-- docs/fsharp/language-reference/literals.md | 5 +++-- .../fsharp/language-reference/loops-for-in-expression.md | 5 +++-- .../fsharp/language-reference/loops-for-to-expression.md | 5 +++-- .../language-reference/loops-while-do-expression.md | 5 +++-- docs/fsharp/language-reference/match-expressions.md | 9 +++++---- docs/fsharp/language-reference/members/constructors.md | 5 +++-- .../language-reference/members/do-bindings-in-classes.md | 5 +++-- docs/fsharp/language-reference/members/events.md | 5 +++-- .../members/explicit-fields-the-val-keyword.md | 5 +++-- docs/fsharp/language-reference/members/index.md | 9 ++++----- .../language-reference/members/indexed-properties.md | 5 +++-- .../members/let-bindings-in-classes.md | 5 +++-- docs/fsharp/language-reference/members/methods.md | 5 +++-- docs/fsharp/language-reference/members/properties.md | 5 +++-- docs/fsharp/language-reference/modules.md | 9 +++++---- docs/fsharp/language-reference/namespaces.md | 5 +++-- docs/fsharp/language-reference/object-expressions.md | 5 +++-- docs/fsharp/language-reference/operator-overloading.md | 5 +++-- docs/fsharp/language-reference/options.md | 5 +++-- .../language-reference/parameters-and-arguments.md | 5 +++-- docs/fsharp/language-reference/pattern-matching.md | 5 +++-- docs/fsharp/language-reference/query-expressions.md | 5 +++-- docs/fsharp/language-reference/records.md | 5 +++-- docs/fsharp/language-reference/reference-cells.md | 5 +++-- .../resource-management-the-use-keyword.md | 5 +++-- docs/fsharp/language-reference/results.md | 5 +++-- docs/fsharp/language-reference/sequences.md | 5 +++-- docs/fsharp/language-reference/signature-files.md | 5 +++-- .../source-line-file-path-identifiers.md | 5 +++-- docs/fsharp/language-reference/strings.md | 5 +++-- docs/fsharp/language-reference/structures.md | 5 +++-- .../arithmetic-operators.md | 5 +++-- .../symbol-and-operator-reference/bitwise-operators.md | 5 +++-- .../symbol-and-operator-reference/boolean-operators.md | 5 +++-- .../symbol-and-operator-reference/index.md | 5 +++-- .../symbol-and-operator-reference/nullable-operators.md | 5 +++-- docs/fsharp/language-reference/tuples.md | 5 +++-- docs/fsharp/language-reference/type-abbreviations.md | 5 +++-- docs/fsharp/language-reference/type-extensions.md | 5 +++-- docs/fsharp/language-reference/type-inference.md | 5 +++-- docs/fsharp/language-reference/unit-type.md | 5 +++-- docs/fsharp/language-reference/units-of-measure.md | 5 +++-- docs/fsharp/language-reference/value-options.md | 5 +++-- docs/fsharp/language-reference/values/index.md | 5 +++-- docs/fsharp/language-reference/values/null-values.md | 5 +++-- docs/fsharp/language-reference/verbose-syntax.md | 5 +++-- .../asynchronous-and-concurrent-programming/async.md | 5 +++-- docs/fsharp/tutorials/fsharp-interactive/index.md | 3 ++- .../tutorials/type-providers/creating-a-type-provider.md | 5 +++-- docs/fsharp/tutorials/type-providers/index.md | 3 ++- .../type-providers/troubleshooting-type-providers.md | 3 ++- .../tutorials/type-providers/type-provider-security.md | 3 ++- 100 files changed, 304 insertions(+), 209 deletions(-) diff --git a/docs/fsharp/language-reference/abstract-classes.md b/docs/fsharp/language-reference/abstract-classes.md index 6fad2282c234c..c68d4112e3f5b 100644 --- a/docs/fsharp/language-reference/abstract-classes.md +++ b/docs/fsharp/language-reference/abstract-classes.md @@ -1,5 +1,6 @@ --- -title: Abstract Classes (F#) +title: Abstract Classes +ms.custom: seodec18 description: Learn about F# abstract classes, which leave some or all members unimplemented and represent common functionality of a diverse set of object types. ms.date: 05/16/2016 --- @@ -54,4 +55,4 @@ Area of Circle: 78.539816 - [Classes](classes.md) - [Members](members/index.md) - [Methods](members/methods.md) -- [Properties](members/Properties.md) +- [Properties](members/Properties.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/access-control.md b/docs/fsharp/language-reference/access-control.md index 9f2238b1d1dc6..8e300b8d557b6 100644 --- a/docs/fsharp/language-reference/access-control.md +++ b/docs/fsharp/language-reference/access-control.md @@ -1,5 +1,6 @@ --- -title: Access Control (F#) +title: Access Control +ms.custom: seodec18 description: Learn how to control access to programming elements, such as types, methods, and functions, in the F# programming language. ms.date: 05/16/2016 --- @@ -49,4 +50,4 @@ The following code tests the accessibility of the types created in `Module1.fs`. ## See also - [F# Language Reference](index.md) -- [Signatures](signatures.md) +- [Signatures](signatures.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/active-patterns.md b/docs/fsharp/language-reference/active-patterns.md index 1a9d99bfc0bae..96ca94e6d0b6d 100644 --- a/docs/fsharp/language-reference/active-patterns.md +++ b/docs/fsharp/language-reference/active-patterns.md @@ -1,5 +1,6 @@ --- -title: Active Patterns (F#) +title: Active Patterns +ms.custom: seodec18 description: Learn how to use active patterns to define named partitions that subdivide input data in the F# programming language. ms.date: 05/16/2016 --- @@ -125,4 +126,4 @@ Hello, George! ## See also - [F# Language Reference](index.md) -- [Match Expressions](match-expressions.md) +- [Match Expressions](match-expressions.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/arrays.md b/docs/fsharp/language-reference/arrays.md index 836c0f5b31189..eedeccbcc6ca9 100644 --- a/docs/fsharp/language-reference/arrays.md +++ b/docs/fsharp/language-reference/arrays.md @@ -1,5 +1,6 @@ --- -title: Arrays (F#) +title: Arrays +ms.custom: seodec18 description: Learn how to create and use arrays in the F# programming language. ms.date: 05/16/2016 --- @@ -412,4 +413,4 @@ The module [`Array.Parallel`](https://msdn.microsoft.com/library/60f30b77-5af4-4 ## See also - [F# Language Reference](index.md) -- [F#; Types](fsharp-types.md) +- [F# Types](fsharp-types.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/assertions.md b/docs/fsharp/language-reference/assertions.md index 72e9bebd9557f..9e06eb3469366 100644 --- a/docs/fsharp/language-reference/assertions.md +++ b/docs/fsharp/language-reference/assertions.md @@ -1,5 +1,6 @@ --- -title: Assertions (F#) +title: Assertions +ms.custom: seodec18 description: Learn how to use the 'assert' expression as a debugging feature for testing expressions in the F# programming language. ms.date: 05/16/2016 --- @@ -34,4 +35,4 @@ The following code example illustrates the use of the `assert` expression. ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/asynchronous-workflows.md b/docs/fsharp/language-reference/asynchronous-workflows.md index 4f092e330c684..50d5fa90ef1cb 100644 --- a/docs/fsharp/language-reference/asynchronous-workflows.md +++ b/docs/fsharp/language-reference/asynchronous-workflows.md @@ -1,5 +1,6 @@ --- -title: Asynchronous Workflows (F#) +title: Asynchronous Workflows +ms.custom: seodec18 description: Learn about support in the F# programming language for performing computations asynchronously, which execute without blocking execution of other work. ms.date: 05/16/2016 --- @@ -63,4 +64,4 @@ The `runAll` function launches three asynchronous workflows in parallel and wait - [F# Language Reference](index.md) - [Computation Expressions](computation-expressions.md) -- [Control.Async Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.async-class-%5bfsharp%5d) +- [Control.Async Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.async-class-%5bfsharp%5d) \ No newline at end of file diff --git a/docs/fsharp/language-reference/attributes.md b/docs/fsharp/language-reference/attributes.md index 29053876bf8eb..9c0f1a033f531 100644 --- a/docs/fsharp/language-reference/attributes.md +++ b/docs/fsharp/language-reference/attributes.md @@ -1,5 +1,6 @@ --- -title: Attributes (F#) +title: Attributes +ms.custom: seodec18 description: Learn how F# Attributes enable metadata to be applied to a programming construct. ms.date: 05/16/2016 --- @@ -85,6 +86,7 @@ Although you do not usually need to specify the attribute target explicitly, val type + ``` [] type MyStruct = @@ -99,4 +101,4 @@ Although you do not usually need to specify the attribute target explicitly, val ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/basic-types.md b/docs/fsharp/language-reference/basic-types.md index 51b35d0f96610..9885e3d620e28 100644 --- a/docs/fsharp/language-reference/basic-types.md +++ b/docs/fsharp/language-reference/basic-types.md @@ -1,5 +1,6 @@ --- -title: Basic Types (F#) +title: Basic Types +ms.custom: seodec18 description: Discover the fundamental basic types that are used in the F# language. ms.date: 07/09/2018 --- @@ -33,4 +34,4 @@ This topic lists the basic types that are defined in the F# language. These type ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/byrefs.md b/docs/fsharp/language-reference/byrefs.md index fc5b939cc5b3d..ccc942a9bb1ad 100644 --- a/docs/fsharp/language-reference/byrefs.md +++ b/docs/fsharp/language-reference/byrefs.md @@ -1,9 +1,9 @@ --- -title: Byrefs (F#) +title: Byrefs +ms.custom: seodec18 description: Learn about byref and byref-like types in F#, which are used for low-level programming. ms.date: 09/02/2018 --- - # Byrefs F# has two major feature areas that deal in the space of low-level programming: @@ -240,4 +240,4 @@ let test () = () ``` -This prevents you from getting different results depending on if you compile with optimizations on or off. +This prevents you from getting different results depending on if you compile with optimizations on or off. \ No newline at end of file diff --git a/docs/fsharp/language-reference/caller-information.md b/docs/fsharp/language-reference/caller-information.md index 836488255fb8b..11477387230c1 100644 --- a/docs/fsharp/language-reference/caller-information.md +++ b/docs/fsharp/language-reference/caller-information.md @@ -1,5 +1,6 @@ --- -title: Caller information (F#) +title: Caller information +ms.custom: seodec18 description: Describes how to use Caller Info Argument Attributes to obtain caller information from a method. ms.date: 04/25/2017 --- @@ -66,6 +67,6 @@ The following chart shows the member names that are returned when you use the Ca ## See also -- [Attributes](attributes.md) -- [Named arguments](parameters-and-arguments.md#named-arguments) -- [Optional parameters](parameters-and-arguments.md#optional-parameters) +- [Attributes](attributes.md) +- [Named arguments](parameters-and-arguments.md#named-arguments) +- [Optional parameters](parameters-and-arguments.md#optional-parameters) \ No newline at end of file diff --git a/docs/fsharp/language-reference/casting-and-conversions.md b/docs/fsharp/language-reference/casting-and-conversions.md index b6a98bfea2e8b..88aece8e913c6 100644 --- a/docs/fsharp/language-reference/casting-and-conversions.md +++ b/docs/fsharp/language-reference/casting-and-conversions.md @@ -1,5 +1,6 @@ --- -title: Casting and Conversions (F#) +title: Casting and Conversions +ms.custom: seodec18 description: Learn how the F# programming language provides conversion operators for arithmetic conversions between various primitive types. ms.date: 05/16/2016 --- @@ -111,4 +112,4 @@ For more information about type tests, see [Match Expressions](match-Expressions ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/classes.md b/docs/fsharp/language-reference/classes.md index bbf8cae95e7ee..8e3ac44ac1cf9 100644 --- a/docs/fsharp/language-reference/classes.md +++ b/docs/fsharp/language-reference/classes.md @@ -1,5 +1,6 @@ --- -title: Classes (F#) +title: Classes +ms.custom: seodec18 description: Learn how F# Classes are types that represent objects that can have properties, methods, and events. ms.date: 05/16/2016 --- @@ -131,4 +132,4 @@ Structures are also useful for small aggregates of data, but they differ from cl - [F# Language Reference](index.md) - [Members](members/index.md) - [Inheritance](inheritance.md) -- [Interfaces](interfaces.md) +- [Interfaces](interfaces.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/code-quotations.md b/docs/fsharp/language-reference/code-quotations.md index db835848d28c0..683d98e39f08c 100644 --- a/docs/fsharp/language-reference/code-quotations.md +++ b/docs/fsharp/language-reference/code-quotations.md @@ -1,5 +1,6 @@ --- -title: Code Quotations (F#) +title: Code Quotations +ms.custom: seodec18 description: Learn about F# code quotations, a language feature that enables you to generate and work with F# code expressions programmatically. ms.date: 05/16/2016 --- @@ -96,4 +97,4 @@ The code in the other active pattern branches just regenerates the same expressi ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/compiler-directives.md b/docs/fsharp/language-reference/compiler-directives.md index 79acb69197d4e..fa0da587f061c 100644 --- a/docs/fsharp/language-reference/compiler-directives.md +++ b/docs/fsharp/language-reference/compiler-directives.md @@ -1,5 +1,6 @@ --- -title: Compiler Directives (F#) +title: Compiler Directives +ms.custom: seodec18 description: Learn about F# language preprocessor directives, conditional compilation directives, line directives, and compiler directives. ms.date: 05/16/2016 --- @@ -64,4 +65,4 @@ For interpreter (fsi.exe) directives, see [Interactive Programming with F#](../t ## See also - [F# Language Reference](index.md) -- [Compiler Options](compiler-options.md) +- [Compiler Options](compiler-options.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/compiler-options.md b/docs/fsharp/language-reference/compiler-options.md index 0608dc0849c1e..d6e7a23e05077 100644 --- a/docs/fsharp/language-reference/compiler-options.md +++ b/docs/fsharp/language-reference/compiler-options.md @@ -1,5 +1,6 @@ --- -title: Compiler Options (F#) +title: Compiler Options +ms.custom: seodec18 description: Use F# compiler command-line options to control the compilation of your F# apps and libraries. ms.date: 12/10/2018 --- @@ -65,8 +66,7 @@ The following table shows compiler options listed alphabetically. Some of the F# ## Related articles - |Title|Description| |-----|-----------| |[F# Interactive Options](fsharp-interactive-options.md)|Describes command-line options supported by the F# interpreter, fsi.exe.| -|[Project Properties Reference](/visualstudio/ide/reference/project-properties-reference)|Describes the UI for projects, including project property pages that provide build options.| +|[Project Properties Reference](/visualstudio/ide/reference/project-properties-reference)|Describes the UI for projects, including project property pages that provide build options.| \ No newline at end of file diff --git a/docs/fsharp/language-reference/computation-expressions.md b/docs/fsharp/language-reference/computation-expressions.md index 2612040f22f3b..aff5ad9c933c9 100644 --- a/docs/fsharp/language-reference/computation-expressions.md +++ b/docs/fsharp/language-reference/computation-expressions.md @@ -1,5 +1,6 @@ --- -title: Computation Expressions (F#) +title: Computation Expressions +ms.custom: seodec18 description: Learn how to create convenient syntax for writing computations in F# that can be sequenced and combined using control flow constructs and bindings. ms.date: 07/27/2018 --- @@ -396,4 +397,4 @@ type Microsoft.FSharp.Linq.QueryBuilder with - [F# Language Reference](index.md) - [Asynchronous Workflows](asynchronous-workflows.md) - [Sequences](https://msdn.microsoft.com/library/6b773b6b-9c9a-4af8-bd9e-d96585c166db) -- [Query Expressions](query-expressions.md) +- [Query Expressions](query-expressions.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/conditional-expressions-if-then-else.md b/docs/fsharp/language-reference/conditional-expressions-if-then-else.md index b5f277b1f13ec..ad4a98174b5f6 100644 --- a/docs/fsharp/language-reference/conditional-expressions-if-then-else.md +++ b/docs/fsharp/language-reference/conditional-expressions-if-then-else.md @@ -1,5 +1,6 @@ --- -title: "Conditional Expressions: if... then...else (F#)" +title: "Conditional Expressions: if... then...else" +ms.custom: seodec18 description: Learn how to write conditional expressions in F# to execute different branches of code. ms.date: 05/16/2016 --- @@ -34,4 +35,4 @@ You are only 9 years old and already learning F#? Wow! ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/copy-and-update-record-expressions.md b/docs/fsharp/language-reference/copy-and-update-record-expressions.md index 18fb081b27bcb..9a0851fdfda38 100644 --- a/docs/fsharp/language-reference/copy-and-update-record-expressions.md +++ b/docs/fsharp/language-reference/copy-and-update-record-expressions.md @@ -1,5 +1,6 @@ --- -title: Copy and Update Record Expressions (F#) +title: Copy and Update Record Expressions +ms.custom: seodec18 description: Learn how to write a 'copy and update record expression' that copies an existing record, updates specified fields, and returns the updated record. author: ChrSteinert ms.date: 06/04/2016 @@ -31,4 +32,4 @@ If you were to update only on field of that record you could use the *copy and u ## See also - [Records](records.md) -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/delegates.md b/docs/fsharp/language-reference/delegates.md index 62eec90263613..2638992e90f36 100644 --- a/docs/fsharp/language-reference/delegates.md +++ b/docs/fsharp/language-reference/delegates.md @@ -1,5 +1,6 @@ --- -title: Delegates (F#) +title: Delegates +ms.custom: seodec18 description: Learn how to work with delegates in F#. ms.date: 05/16/2016 --- @@ -42,4 +43,4 @@ ccccc - [F# Language Reference](index.md) - [Parameters and Arguments](parameters-and-arguments.md) -- [Events](members/events.md) +- [Events](members/events.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/discriminated-unions.md b/docs/fsharp/language-reference/discriminated-unions.md index 3049868adf7b5..506e409e2c8d3 100644 --- a/docs/fsharp/language-reference/discriminated-unions.md +++ b/docs/fsharp/language-reference/discriminated-unions.md @@ -1,5 +1,6 @@ --- -title: Discriminated Unions (F#) +title: Discriminated Unions +ms.custom: seodec18 description: Learn how to use F# discriminated unions. ms.date: 05/16/2016 --- @@ -169,4 +170,4 @@ The following attributes are commonly seen in discriminated unions: ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/enumerations.md b/docs/fsharp/language-reference/enumerations.md index a972e9b672c66..b5c28f980b0a8 100644 --- a/docs/fsharp/language-reference/enumerations.md +++ b/docs/fsharp/language-reference/enumerations.md @@ -1,5 +1,6 @@ --- -title: Enumerations (F#) +title: Enumerations +ms.custom: seodec18 description: Learn how to use F# enumerations in place of literals to make your code more readable and maintainable. ms.date: 05/16/2016 --- @@ -47,4 +48,4 @@ Additionally, cases for enums are always emitted as `public`. This is so that th ## See also - [F# Language Reference](index.md) -- [Casting and Conversions](casting-and-conversions.md) +- [Casting and Conversions](casting-and-conversions.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/exception-handling/exception-types.md b/docs/fsharp/language-reference/exception-handling/exception-types.md index 10b6231718e5a..07ad268a2e035 100644 --- a/docs/fsharp/language-reference/exception-handling/exception-types.md +++ b/docs/fsharp/language-reference/exception-handling/exception-types.md @@ -1,5 +1,6 @@ --- -title: Exception Types (F#) +title: Exception Types +ms.custom: seodec18 description: Learn how to define and use F# exception types. ms.date: 05/16/2016 --- @@ -35,4 +36,4 @@ The exception type that you define with the `exception` keyword in F# is a new t - [Exception Handling](index.md) - [Exceptions: the `raise` Function](the-raise-function.md) -- [Exception Hierarchy](https://msdn.microsoft.com/library/z4c5tckx.aspx) +- [Exception Hierarchy](https://msdn.microsoft.com/library/z4c5tckx.aspx) \ No newline at end of file diff --git a/docs/fsharp/language-reference/exception-handling/index.md b/docs/fsharp/language-reference/exception-handling/index.md index 53411791a3b80..e80d7e0feacf0 100644 --- a/docs/fsharp/language-reference/exception-handling/index.md +++ b/docs/fsharp/language-reference/exception-handling/index.md @@ -1,5 +1,6 @@ --- -title: Exception Handling (F#) +title: Exception Handling +ms.custom: seodec18 description: Learn the basics of exception handling in F# and find links to exception handling expressions and functions. ms.date: 05/16/2016 --- @@ -7,13 +8,11 @@ ms.date: 05/16/2016 This section contains information about exception handling support in the F# language. - ## Exception Handling Basics Exception handling is the standard way of handling error conditions in the .NET Framework. Thus, any .NET language must support this mechanism, including F#. An *exception* is an object that encapsulates information about an error. When errors occur, exceptions are raised and regular execution stops. Instead, the runtime searches for an appropriate handler for the exception. The search starts in the current function, and proceeds up the stack through the layers of callers until a matching handler is found. Then the handler is executed. In addition, as the stack is unwound, the runtime executes any code in `finally` blocks, to guarantee that objects are cleaned up correctly during the unwinding process. - ## Related Topics |Title|Description| @@ -23,4 +22,4 @@ In addition, as the stack is unwound, the runtime executes any code in `finally` |[Exceptions: The `try...finally` Expression](the-try-finally-expression.md)|Describes the language construct that enables you to execute clean-up code as the stack unwinds when an exception is thrown.| |[Exceptions: the `raise` Function](the-raise-Function.md)|Describes how to throw an exception object.| |[Exceptions: The `failwith` Function](the-failwith-function.md)|Describes how to generate a general F# exception.| -|[Exceptions: The `invalidArg` Function](the-invalidArg-function.md)|Describes how to generate an invalid argument exception.| +|[Exceptions: The `invalidArg` Function](the-invalidArg-function.md)|Describes how to generate an invalid argument exception.| \ No newline at end of file diff --git a/docs/fsharp/language-reference/exception-handling/the-failwith-function.md b/docs/fsharp/language-reference/exception-handling/the-failwith-function.md index d1f42b87e9b74..cf3d588aca222 100644 --- a/docs/fsharp/language-reference/exception-handling/the-failwith-function.md +++ b/docs/fsharp/language-reference/exception-handling/the-failwith-function.md @@ -1,5 +1,6 @@ --- -title: "Exceptions: The failwith Function (F#)" +title: "Exceptions: The failwith Function" +ms.custom: seodec18 description: Learn how the 'failwith' function generates an F# exception. ms.date: 05/16/2016 --- @@ -27,4 +28,4 @@ The exception that is generated by `failwith` is a `System.Exception` exception, - [Exception Types](exception-types.md) - [Exceptions: The `try...with` Expression](the-try-with-expression.md) - [Exceptions: The `try...finally` Expression](the-try-finally-expression.md) -- [Exceptions: the `raise` Function](the-raise-function.md) +- [Exceptions: the `raise` Function](the-raise-function.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/exception-handling/the-invalidArg-function.md b/docs/fsharp/language-reference/exception-handling/the-invalidArg-function.md index 7ad491afb0b3d..f45a869fe6699 100644 --- a/docs/fsharp/language-reference/exception-handling/the-invalidArg-function.md +++ b/docs/fsharp/language-reference/exception-handling/the-invalidArg-function.md @@ -1,5 +1,6 @@ --- -title: "Exceptions: The invalidArg Function (F#)" +title: "Exceptions: The invalidArg Function" +ms.custom: seodec18 description: Learn how the F# 'invalidArg' function generates an argument exception. ms.date: 05/16/2016 --- @@ -36,4 +37,4 @@ System.ArgumentException: Month parameter out of range. - [Exceptions: The `try...with` Expression](the-try-with-expression.md) - [Exceptions: The `try...finally` Expression](the-try-finally-expression.md) - [Exceptions: the `raise` Function](the-raise-function.md) -- [Exceptions: The `failwith` Function](the-failwith-function.md) +- [Exceptions: The `failwith` Function](the-failwith-function.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/exception-handling/the-raise-function.md b/docs/fsharp/language-reference/exception-handling/the-raise-function.md index a42016ca873ca..a33bd73e8fcd0 100644 --- a/docs/fsharp/language-reference/exception-handling/the-raise-function.md +++ b/docs/fsharp/language-reference/exception-handling/the-raise-function.md @@ -1,5 +1,6 @@ --- -title: "Exceptions: the raise Function (F#)" +title: "Exceptions: the raise Function" +ms.custom: seodec18 description: Learn how the F# 'raise' function is used to indicate that an error or exceptional condition has occurred. ms.date: 05/16/2016 --- @@ -34,4 +35,4 @@ The `raise` function can also be used to raise .NET exceptions, as shown in the - [Exceptions: The `try...with` Expression](the-try-with-expression.md) - [Exceptions: The `try...finally` Expression](the-try-finally-expression.md) - [Exceptions: The `failwith` Function](the-failwith-function.md) -- [Exceptions: The `invalidArg` Function](the-invalidArg-function.md) +- [Exceptions: The `invalidArg` Function](the-invalidArg-function.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/exception-handling/the-try-finally-expression.md b/docs/fsharp/language-reference/exception-handling/the-try-finally-expression.md index 6e0eb8e085728..cd7ef9b9ffc04 100644 --- a/docs/fsharp/language-reference/exception-handling/the-try-finally-expression.md +++ b/docs/fsharp/language-reference/exception-handling/the-try-finally-expression.md @@ -1,5 +1,6 @@ --- -title: "Exceptions: The try...finally Expression (F#)" +title: "Exceptions: The try...finally Expression" +ms.custom: seodec18 description: Learn how the F# 'try...finally' expression enables you to execute clean-up code even if a block of code throws an exception. ms.date: 05/16/2016 --- @@ -44,4 +45,4 @@ In the context of computation expressions, including sequence expressions and as ## See also - [Exception Handling](index.md) -- [Exceptions: The `try...with` Expression](the-try-with-expression.md) +- [Exceptions: The `try...with` Expression](the-try-with-expression.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/exception-handling/the-try-with-expression.md b/docs/fsharp/language-reference/exception-handling/the-try-with-expression.md index 2e1e89795a346..a4905113a0530 100644 --- a/docs/fsharp/language-reference/exception-handling/the-try-with-expression.md +++ b/docs/fsharp/language-reference/exception-handling/the-try-with-expression.md @@ -1,5 +1,6 @@ --- -title: "Exceptions: The try...with Expression (F#)" +title: "Exceptions: The try...with Expression" +ms.custom: seodec18 description: Learn how to use the F# 'try...with' expression for exception handling. ms.date: 05/16/2016 --- @@ -54,4 +55,4 @@ The following code examples illustrate the use of the various exception handler - [Exception Handling](index.md) - [Exception Types](exception-types.md) -- [Exceptions: The `try...finally` Expression](the-try-finally-expression.md) +- [Exceptions: The `try...finally` Expression](the-try-finally-expression.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/fixed.md b/docs/fsharp/language-reference/fixed.md index 26deeceb3c280..db2d068adf840 100644 --- a/docs/fsharp/language-reference/fixed.md +++ b/docs/fsharp/language-reference/fixed.md @@ -1,5 +1,6 @@ --- -title: The Fixed Keyword (F#) +title: The Fixed Keyword +ms.custom: seodec18 description: Learn how you can 'pin' a local onto the stack to prevent collection with the F# 'fixed' keyword. ms.date: 04/24/2017 --- @@ -57,4 +58,4 @@ doPointerWork() ## See also -- [NativePtr Module](https://msdn.microsoft.com/visualfsharpdocs/conceptual/nativeinterop.nativeptr-module-%5Bfsharp%5D) +- [NativePtr Module](https://msdn.microsoft.com/visualfsharpdocs/conceptual/nativeinterop.nativeptr-module-%5Bfsharp%5D) \ No newline at end of file diff --git a/docs/fsharp/language-reference/flexible-types.md b/docs/fsharp/language-reference/flexible-types.md index bff608439f3f6..2d63715f4b0bb 100644 --- a/docs/fsharp/language-reference/flexible-types.md +++ b/docs/fsharp/language-reference/flexible-types.md @@ -1,5 +1,6 @@ --- -title: Flexible Types (F#) +title: Flexible Types +ms.custom: seodec18 description: Learn how to use F# flexible type annotation, which indicates that a parameter, variable, or value has a type that is compatible with a specified type. ms.date: 05/16/2016 --- @@ -64,4 +65,4 @@ In F#, as in other object-oriented languages, there are contexts in which derive ## See also - [F# Language Reference](index.md) -- [Generics](generics/index.md) +- [Generics](generics/index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/do-bindings.md b/docs/fsharp/language-reference/functions/do-bindings.md index 2a4c96488a5bf..dd415f4ab1534 100644 --- a/docs/fsharp/language-reference/functions/do-bindings.md +++ b/docs/fsharp/language-reference/functions/do-bindings.md @@ -1,5 +1,6 @@ --- -title: do Bindings (F#) +title: do Bindings +ms.custom: seodec18 description: Learn how an F# 'do' binding is used to execute code without defining a function or value. ms.date: 05/16/2016 --- @@ -25,4 +26,4 @@ Attributes can be applied to a top-level `do` binding. For example, if your prog ## See also - [F# Language Reference](../index.md) -- [Functions](index.md) +- [Functions](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/entry-point.md b/docs/fsharp/language-reference/functions/entry-point.md index 1e1e46eef25e8..037020d8c3fb4 100644 --- a/docs/fsharp/language-reference/functions/entry-point.md +++ b/docs/fsharp/language-reference/functions/entry-point.md @@ -1,5 +1,6 @@ --- -title: Entry Point (F#) +title: Entry Point +ms.custom: seodec18 description: Learn how to set the entry point to an F# program that is compiled as an executable file, where execution formally starts. ms.date: 05/16/2016 --- @@ -39,4 +40,4 @@ When a program has no **EntryPoint** attribute that explicitly indicates the ent ## See also - [Functions](index.md) -- [let Bindings](let-bindings.md) +- [let Bindings](let-bindings.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/external-functions.md b/docs/fsharp/language-reference/functions/external-functions.md index 8199a27b9cec0..13cb5083dc8f9 100644 --- a/docs/fsharp/language-reference/functions/external-functions.md +++ b/docs/fsharp/language-reference/functions/external-functions.md @@ -1,5 +1,6 @@ --- -title: External Functions (F#) +title: External Functions +ms.custom: seodec18 description: Learn about the F# language support for calling functions in native code. ms.date: 05/16/2016 --- @@ -44,4 +45,4 @@ Interoperability with native code is referred to as *platform invoke* and is a f ## See also -- [Functions](index.md) +- [Functions](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/index.md b/docs/fsharp/language-reference/functions/index.md index 7d190667745bd..c4b218dd297c8 100644 --- a/docs/fsharp/language-reference/functions/index.md +++ b/docs/fsharp/language-reference/functions/index.md @@ -1,5 +1,6 @@ --- -title: Functions (F#) +title: Functions +ms.custom: seodec18 description: Learn about functions in F# and how F# supports common functional programming constructs. ms.date: 05/16/2016 --- @@ -199,4 +200,4 @@ You can overload methods of a type but not functions. For more information, see ## See also - [Values](../values/index.md) -- [F# Language Reference](../index.md) +- [F# Language Reference](../index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/inline-functions.md b/docs/fsharp/language-reference/functions/inline-functions.md index 38ac670ddd229..75e19b08f1800 100644 --- a/docs/fsharp/language-reference/functions/inline-functions.md +++ b/docs/fsharp/language-reference/functions/inline-functions.md @@ -1,5 +1,6 @@ --- -title: Inline Functions (F#) +title: Inline Functions +ms.custom: seodec18 description: Learn how to use F# inline functions that are integrated directly into the calling code. ms.date: 05/16/2016 --- @@ -37,4 +38,4 @@ This means that the function accepts any type that supports a conversion to **fl - [Functions](index.md) - [Constraints](../generics/constraints.md) -- [Statically Resolved Type Parameters](../generics/statically-resolved-type-parameters.md) +- [Statically Resolved Type Parameters](../generics/statically-resolved-type-parameters.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/lambda-expressions-the-fun-keyword.md b/docs/fsharp/language-reference/functions/lambda-expressions-the-fun-keyword.md index 6be7f04d65aed..ff46861156ee8 100644 --- a/docs/fsharp/language-reference/functions/lambda-expressions-the-fun-keyword.md +++ b/docs/fsharp/language-reference/functions/lambda-expressions-the-fun-keyword.md @@ -1,5 +1,6 @@ --- -title: "Lambda Expressions: The fun Keyword (F#)" +title: "Lambda Expressions: The fun Keyword" +ms.custom: seodec18 description: Learn how to use the F# 'fun' keyword to define a lambda expression, which is an anonymous function. ms.date: 05/16/2016 --- @@ -42,4 +43,4 @@ Lambda expressions are especially useful when you want to perform operations on ## See also -- [Functions](index.md) +- [Functions](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/let-bindings.md b/docs/fsharp/language-reference/functions/let-bindings.md index c4d04beaa8ddb..1d01b7666427d 100644 --- a/docs/fsharp/language-reference/functions/let-bindings.md +++ b/docs/fsharp/language-reference/functions/let-bindings.md @@ -1,5 +1,6 @@ --- -title: let Bindings (F#) +title: let Bindings +ms.custom: seodec18 description: Learn how to use an F# 'let' binding, which associates an identifier with a value or function. ms.date: 05/16/2016 --- @@ -111,4 +112,4 @@ For more information on modules and access control, see [Modules](../modules.md) ## See also - [Functions](index.md) -- [`let` Bindings in Classes](../members/let-bindings-in-classes.md) +- [`let` Bindings in Classes](../members/let-bindings-in-classes.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/recursive-functions-the-rec-keyword.md b/docs/fsharp/language-reference/functions/recursive-functions-the-rec-keyword.md index 171bd2dc07005..dea7498a46071 100644 --- a/docs/fsharp/language-reference/functions/recursive-functions-the-rec-keyword.md +++ b/docs/fsharp/language-reference/functions/recursive-functions-the-rec-keyword.md @@ -1,5 +1,6 @@ --- -title: "Recursive Functions: The rec Keyword (F#)" +title: "Recursive Functions: The rec Keyword" +ms.custom: seodec18 description: Learn how the F# 'rec' keyword is used with the 'let' keyword to define a recursive function. ms.date: 05/16/2016 --- @@ -45,4 +46,4 @@ The following example shows two mutually recursive functions. ## See also -- [Functions](index.md) +- [Functions](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/generics/automatic-generalization.md b/docs/fsharp/language-reference/generics/automatic-generalization.md index 9f3f79b26540c..c2d936e06d4d9 100644 --- a/docs/fsharp/language-reference/generics/automatic-generalization.md +++ b/docs/fsharp/language-reference/generics/automatic-generalization.md @@ -1,5 +1,6 @@ --- -title: Automatic Generalization (F#) +title: Automatic Generalization +ms.custom: seodec18 description: Learn how F# automatically generalizes the arguments and types of functions so that they work with multiple types when possible. ms.date: 05/16/2016 --- @@ -96,4 +97,4 @@ let floatLists = arrayOf10Lists - [Type Inference](../type-inference.md) - [Generics](index.md) - [Statically Resolved Type Parameters](statically-resolved-type-parameters.md) -- [Constraints](constraints.md) +- [Constraints](constraints.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/generics/constraints.md b/docs/fsharp/language-reference/generics/constraints.md index 0c6615c673ec5..45b4b38775407 100644 --- a/docs/fsharp/language-reference/generics/constraints.md +++ b/docs/fsharp/language-reference/generics/constraints.md @@ -1,5 +1,6 @@ --- -title: Constraints (F#) +title: Constraints +ms.custom: seodec18 description: Learn about F# constraints that apply to generic type parameters to specify the requirements for a type argument in a generic type or function. ms.date: 05/16/2016 --- @@ -112,4 +113,4 @@ class end ## See also - [Generics](index.md) -- [Constraints](constraints.md) +- [Constraints](constraints.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/generics/index.md b/docs/fsharp/language-reference/generics/index.md index bf61ddc3dc4fb..fbec2022f214f 100644 --- a/docs/fsharp/language-reference/generics/index.md +++ b/docs/fsharp/language-reference/generics/index.md @@ -1,5 +1,6 @@ --- -title: Generics (F#) +title: Generics +ms.custom: seodec18 description: Learn how to use F# generic functions and types, which enable you to write code that works with a variety of types without repeating code. ms.date: 05/16/2016 --- @@ -93,4 +94,4 @@ There are two kinds of type parameters that can be used in F# programs. The firs - [Statically Resolved Type Parameters](statically-resolved-type-parameters.md) - [Generics in the .NET Framework](~/docs/standard/generics/index.md) - [Automatic Generalization](automatic-generalization.md) -- [Constraints](constraints.md) +- [Constraints](constraints.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/generics/statically-resolved-type-parameters.md b/docs/fsharp/language-reference/generics/statically-resolved-type-parameters.md index 263004036585e..e4e803f9e736d 100644 --- a/docs/fsharp/language-reference/generics/statically-resolved-type-parameters.md +++ b/docs/fsharp/language-reference/generics/statically-resolved-type-parameters.md @@ -1,5 +1,6 @@ --- -title: Statically Resolved Type Parameters (F#) +title: Statically Resolved Type Parameters +ms.custom: seodec18 description: Learn how to use an F# statically resolved type parameter, which is replaced with an actual type at compile time instead of at run time. ms.date: 05/16/2016 --- @@ -85,4 +86,4 @@ let inline replace (a: ^a) (f: ^b): ^a0 when (CFunctor or ^b): (static member r - [Type Inference](../type-inference.md) - [Automatic Generalization](automatic-generalization.md) - [Constraints](constraints.md) -- [Inline Functions](../functions/inline-functions.md) +- [Inline Functions](../functions/inline-functions.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/import-declarations-the-open-keyword.md b/docs/fsharp/language-reference/import-declarations-the-open-keyword.md index 361f580e116ef..8586bd2cd56ec 100644 --- a/docs/fsharp/language-reference/import-declarations-the-open-keyword.md +++ b/docs/fsharp/language-reference/import-declarations-the-open-keyword.md @@ -1,5 +1,6 @@ --- -title: "Import Declarations: The open Keyword (F#)" +title: "Import Declarations: The open Keyword" +ms.custom: seodec18 description: Learn about F# import declarations and how they specify a module or namespace whose elements you can reference without using a fully qualified name. ms.date: 05/16/2016 --- @@ -64,4 +65,4 @@ Some modules, records, or union types may specify the `RequireQualifiedAccess` a - [# Language Reference](index.md) - [Namespaces](namespaces.md) -- [Modules](modules.md) +- [Modules](modules.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/inheritance.md b/docs/fsharp/language-reference/inheritance.md index dcec71e01d674..5b03385cc206c 100644 --- a/docs/fsharp/language-reference/inheritance.md +++ b/docs/fsharp/language-reference/inheritance.md @@ -1,5 +1,6 @@ --- -title: Inheritance (F#) +title: Inheritance +ms.custom: seodec18 description: Learn how to specify F# inheritance relationships using the 'inherit' keyword. ms.date: 05/16/2016 --- @@ -88,4 +89,4 @@ When you are creating object hierarchies, consider using a discriminated union i ## See also - [Object Expressions](object-expressions.md) -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/interfaces.md b/docs/fsharp/language-reference/interfaces.md index 207525f204a90..589a0b2d7b2a2 100644 --- a/docs/fsharp/language-reference/interfaces.md +++ b/docs/fsharp/language-reference/interfaces.md @@ -1,5 +1,6 @@ --- -title: Interfaces (F#) +title: Interfaces +ms.custom: seodec18 description: Learn how F# Interfaces specify sets of related members that other classes implement. ms.date: 05/16/2016 --- @@ -89,4 +90,4 @@ Interfaces can inherit from one or more base interfaces. - [F# Language Reference](index.md) - [Object Expressions](object-expressions.md) -- [Classes](classes.md) +- [Classes](classes.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/keyword-reference.md b/docs/fsharp/language-reference/keyword-reference.md index 7394e6ce77a73..7e442e3e07853 100644 --- a/docs/fsharp/language-reference/keyword-reference.md +++ b/docs/fsharp/language-reference/keyword-reference.md @@ -1,5 +1,6 @@ --- -title: Keyword Reference (F#) +title: Keyword Reference +ms.custom: seodec18 description: Find links to information about all of the F# language keywords. ms.date: 05/16/2016 --- @@ -129,4 +130,4 @@ The following tokens are reserved as keywords for future expansion of the F# lan - [F# Language Reference](index.md) - [Symbol and Operator Reference](symbol-and-operator-reference/index.md) -- [Compiler Options](compiler-options.md) +- [Compiler Options](compiler-options.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/lazy-computations.md b/docs/fsharp/language-reference/lazy-computations.md index e286c0331f85c..5cd08a659a4e0 100644 --- a/docs/fsharp/language-reference/lazy-computations.md +++ b/docs/fsharp/language-reference/lazy-computations.md @@ -1,5 +1,6 @@ --- -title: Lazy Computations (F#) +title: Lazy Computations +ms.custom: seodec18 description: Learn how F# lazy computations can improve the performance of your apps and libraries. ms.date: 05/16/2016 --- @@ -30,4 +31,4 @@ Lazy evaluation, but not the `Lazy` type, is also used for sequences. For more i ## See also - [F# Language Reference](index.md) -- [LazyExtensions module](https://msdn.microsoft.com/library/86671f40-84a0-402a-867d-ae596218d948) +- [LazyExtensions module](https://msdn.microsoft.com/library/86671f40-84a0-402a-867d-ae596218d948) \ No newline at end of file diff --git a/docs/fsharp/language-reference/lists.md b/docs/fsharp/language-reference/lists.md index 937854b77e814..0a0480dff615b 100644 --- a/docs/fsharp/language-reference/lists.md +++ b/docs/fsharp/language-reference/lists.md @@ -1,5 +1,6 @@ --- -title: Lists (F#) +title: Lists +ms.custom: seodec18 description: Learn about F# lists, an ordered, immutable series of elements of the same type. ms.date: 05/16/2016 --- @@ -441,4 +442,4 @@ For information about additional operations on lists, see the library reference - [F# Types](fsharp-types.md) - [Sequences](sequences.md) - [Arrays](arrays.md) -- [Options](options.md) +- [Options](options.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/literals.md b/docs/fsharp/language-reference/literals.md index 7fcb2c321f0f7..97fb09dc2d669 100644 --- a/docs/fsharp/language-reference/literals.md +++ b/docs/fsharp/language-reference/literals.md @@ -1,5 +1,6 @@ --- -title: Literals (F#) +title: Literals +ms.custom: seodec18 description: Learn about the literal types in the F# programming language. ms.date: 05/16/2016 --- @@ -88,4 +89,4 @@ let exampleSSN = 123_456_7890 ## See also -- [Core.LiteralAttribute Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/core.literalattribute-class-%5bfsharp%5d) +- [Core.LiteralAttribute Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/core.literalattribute-class-%5bfsharp%5d) \ No newline at end of file diff --git a/docs/fsharp/language-reference/loops-for-in-expression.md b/docs/fsharp/language-reference/loops-for-in-expression.md index 3a7b61ec00d36..e734f3a4709c6 100644 --- a/docs/fsharp/language-reference/loops-for-in-expression.md +++ b/docs/fsharp/language-reference/loops-for-in-expression.md @@ -1,5 +1,6 @@ --- -title: "Loops: for...in Expression (F#)" +title: "Loops: for...in Expression" +ms.custom: seodec18 description: See how the F# for...in expression looping construct is used to iterate over the matches of a pattern in an enumerable collection. ms.date: 05/16/2016 --- @@ -131,4 +132,4 @@ Number of elements in list1: 5 - [F# Language Reference](index.md) - [Loops: `for...to` Expression](loops-for-to-expression.md) -- [Loops: `while...do` Expression](loops-while-do-expression.md) +- [Loops: `while...do` Expression](loops-while-do-expression.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/loops-for-to-expression.md b/docs/fsharp/language-reference/loops-for-to-expression.md index a7162fbc230f7..21b368bb7d084 100644 --- a/docs/fsharp/language-reference/loops-for-to-expression.md +++ b/docs/fsharp/language-reference/loops-for-to-expression.md @@ -1,5 +1,6 @@ --- -title: "Loops: for...to Expression (F#)" +title: "Loops: for...to Expression" +ms.custom: seodec18 description: See how the F# for...to expression is used to iterate in a loop over a range of values of a loop variable. ms.date: 05/16/2016 --- @@ -35,4 +36,4 @@ The output of the previous code is as follows. - [F# Language Reference](index.md) - [Loops: `for...in` Expression](loops-for-in-expression.md) -- [Loops: `while...do` Expression](loops-while-do-expression.md) +- [Loops: `while...do` Expression](loops-while-do-expression.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/loops-while-do-expression.md b/docs/fsharp/language-reference/loops-while-do-expression.md index 6d84b925d037c..236cfd25767db 100644 --- a/docs/fsharp/language-reference/loops-while-do-expression.md +++ b/docs/fsharp/language-reference/loops-while-do-expression.md @@ -1,5 +1,6 @@ --- -title: "Loops: while...do Expression (F#)" +title: "Loops: while...do Expression" +ms.custom: seodec18 description: See how the while...do expression is used to perform iterative execution (looping) while a specified test condition is true. ms.date: 05/16/2016 --- @@ -36,4 +37,4 @@ Found a 10! - [F# Language Reference](index.md) - [Loops: `for...in` Expression](loops-for-in-expression.md) -- [Loops: `for...to` Expression](loops-for-to-expression.md) +- [Loops: `for...to` Expression](loops-for-to-expression.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/match-expressions.md b/docs/fsharp/language-reference/match-expressions.md index 6d04c04269132..82dabe56dcbed 100644 --- a/docs/fsharp/language-reference/match-expressions.md +++ b/docs/fsharp/language-reference/match-expressions.md @@ -1,5 +1,6 @@ --- -title: Match expressions (F#) +title: Match expressions +ms.custom: seodec18 description: Learn how the F# match expression provides branching control that is based on the comparison of an expression with a set of patterns. ms.date: 04/19/2018 --- @@ -76,6 +77,6 @@ foo() // returns 42 ## See also -- [F# Language Reference](index.md) -- [Active Patterns](active-patterns.md) -- [Pattern Matching](pattern-matching.md) +- [F# Language Reference](index.md) +- [Active Patterns](active-patterns.md) +- [Pattern Matching](pattern-matching.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/constructors.md b/docs/fsharp/language-reference/members/constructors.md index 35f78990fb17c..9f523d6a65ac9 100644 --- a/docs/fsharp/language-reference/members/constructors.md +++ b/docs/fsharp/language-reference/members/constructors.md @@ -1,5 +1,6 @@ --- -title: Constructors (F#) +title: Constructors +ms.custom: seodec18 description: Learn how to define and use constructors in F# to create and initialize class and structure objects. ms.date: 05/16/2016 --- @@ -86,4 +87,4 @@ In addition to specifying code for creating objects, static `let` and `do` bindi ## See also -- [Members](index.md) +- [Members](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/do-bindings-in-classes.md b/docs/fsharp/language-reference/members/do-bindings-in-classes.md index 24cfacd0c17ae..7a54f1f0fada9 100644 --- a/docs/fsharp/language-reference/members/do-bindings-in-classes.md +++ b/docs/fsharp/language-reference/members/do-bindings-in-classes.md @@ -1,5 +1,6 @@ --- -title: do Bindings in Classes (F#) +title: do Bindings in Classes +ms.custom: seodec18 description: Learn how to use an F# 'do' binding in a class definition, which performs actions when the object is constructed or when the type is first used. ms.date: 05/16/2016 --- @@ -44,4 +45,4 @@ Initializing object 1 2 2 4 8 16 - [Classes](../classes.md) - [Constructors](constructors.md) - [`let` Bindings in Classes](let-bindings-in-classes.md) -- [`do` Bindings](../functions/do-Bindings.md) +- [`do` Bindings](../functions/do-Bindings.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/events.md b/docs/fsharp/language-reference/members/events.md index fa73f9f9cbcd2..c6086ad1f656f 100644 --- a/docs/fsharp/language-reference/members/events.md +++ b/docs/fsharp/language-reference/members/events.md @@ -1,5 +1,6 @@ --- -title: Events (F#) +title: Events +ms.custom: seodec18 description: Learn how F# events enable you to associate function calls with user actions, which are important in GUI programming. ms.date: 05/16/2016 --- @@ -176,4 +177,4 @@ Application.Run(appForm) - [Lambda Expressions: The `fun` Keyword](../functions/lambda-expressions-the-fun-keyword.md) - [Control.Event Module](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.event-module-%5bfsharp%5d) - [Control.Event<'T> Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.event%5b%27t%5d-class-%5bfsharp%5d) -- [Control.Event<'Delegate,'Args> Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.event%5b%27delegate%2c%27args%5d-class-%5bfsharp%5d) +- [Control.Event<'Delegate,'Args> Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.event%5b%27delegate%2c%27args%5d-class-%5bfsharp%5d) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/explicit-fields-the-val-keyword.md b/docs/fsharp/language-reference/members/explicit-fields-the-val-keyword.md index b893a0358e7aa..51c5515e0640c 100644 --- a/docs/fsharp/language-reference/members/explicit-fields-the-val-keyword.md +++ b/docs/fsharp/language-reference/members/explicit-fields-the-val-keyword.md @@ -1,5 +1,6 @@ --- -title: "Explicit Fields: The val Keyword (F#)" +title: "Explicit Fields: The val Keyword" +ms.custom: seodec18 description: Learn about the F# 'val' keyword, which is used to declare a location to store a value in a class or structure type without initializing the type. ms.date: 05/16/2016 --- @@ -67,4 +68,4 @@ When the keywords `member val` appear together in a type definition, it is a def - [Properties](properties.md) - [Members](index.md) -- [`let` Bindings in Classes](let-bindings-in-classes.md) +- [`let` Bindings in Classes](let-bindings-in-classes.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/index.md b/docs/fsharp/language-reference/members/index.md index 867ec53c87185..49b0a1793ce13 100644 --- a/docs/fsharp/language-reference/members/index.md +++ b/docs/fsharp/language-reference/members/index.md @@ -1,5 +1,6 @@ --- -title: Members (F#) +title: Members +ms.custom: seodec18 description: Learn about object members in the F# programming language. ms.date: 05/16/2016 --- @@ -7,18 +8,16 @@ ms.date: 05/16/2016 This section describes members of F# object types. - ## Remarks + *Members* are features that are part of a type definition and are declared with the `member` keyword. F# object types such as records, classes, discriminated unions, interfaces, and structures support members. For more information, see [Records](../records.md), [Classes](../classes.md), [Discriminated Unions](../discriminated-Unions.md), [Interfaces](../interfaces.md), and [Structures](../structures.md). Members typically make up the public interface for a type, which is why they are public unless otherwise specified. Members can also be declared private or internal. For more information, see [Access Control](../access-Control.md). Signatures for types can also be used to expose or not expose certain members of a type. For more information, see [Signatures](../signatures.md). Private fields and `do` bindings, which are used only with classes, are not true members, because they are never part of the public interface of a type and are not declared with the `member` keyword, but they are described in this section also. - ## Related Topics - |Topic|Description| |-----|-----------| |[`let` Bindings in Classes](let-bindings-in-classes.md)|Describes the definition of private fields and functions in classes.| @@ -29,4 +28,4 @@ Private fields and `do` bindings, which are used only with classes, are not true |[Constructors](constructors.md)|Describes special functions that initialize objects of a type.| |[Operator Overloading](../operator-overloading.md)|Describes the definition of customized operators for types.| |[Events](events.md)|Describes the definition of events and event handling support in F#.| -|[Explicit Fields: The `val` Keyword](explicit-fields-the-val-keyword.md)|Describes the definition of uninitialized fields in a type.| +|[Explicit Fields: The `val` Keyword](explicit-fields-the-val-keyword.md)|Describes the definition of uninitialized fields in a type.| \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/indexed-properties.md b/docs/fsharp/language-reference/members/indexed-properties.md index 8ec520497c261..8a32c510fbcd8 100644 --- a/docs/fsharp/language-reference/members/indexed-properties.md +++ b/docs/fsharp/language-reference/members/indexed-properties.md @@ -1,5 +1,6 @@ --- -title: Indexed Properties (F#) +title: Indexed Properties +ms.custom: seodec18 description: Learn about indexed properties in F#, which allow for array-like access to ordered data. ms.date: 10/17/2018 --- @@ -62,4 +63,4 @@ The following code demonstrates the use of an indexed property with multiple ind ## See also -- [Members](index.md) +- [Members](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/let-bindings-in-classes.md b/docs/fsharp/language-reference/members/let-bindings-in-classes.md index 77634bdc4e2bb..a8b7b7d98582f 100644 --- a/docs/fsharp/language-reference/members/let-bindings-in-classes.md +++ b/docs/fsharp/language-reference/members/let-bindings-in-classes.md @@ -1,5 +1,6 @@ --- -title: let Bindings in Classes (F#) +title: let Bindings in Classes +ms.custom: seodec18 description: Learn how to define private fields and private functions for F# classes by using 'let' bindings in the class definition. ms.date: 05/16/2016 --- @@ -47,4 +48,4 @@ You can also define private fields in a class by using a member definition and a - [Members](index.md) - [`do` Bindings in Classes](do-bindings-in-classes.md) -- [`let` Bindings](../functions/let-bindings.md) +- [`let` Bindings](../functions/let-bindings.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/methods.md b/docs/fsharp/language-reference/members/methods.md index 3cdc83feadee1..2f02afe40aafc 100644 --- a/docs/fsharp/language-reference/members/methods.md +++ b/docs/fsharp/language-reference/members/methods.md @@ -1,5 +1,6 @@ --- -title: Methods (F#) +title: Methods +ms.custom: seodec18 description: Learn how an F# method is a function associated with a type that are used to expose and implement the functionality and behavior of objects and types. ms.date: 05/16/2016 --- @@ -113,4 +114,4 @@ The following example contains a type that has examples of fields, private funct ## See also -- [Members](index.md) +- [Members](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/properties.md b/docs/fsharp/language-reference/members/properties.md index 44104c409ff0f..c324d2a2c0880 100644 --- a/docs/fsharp/language-reference/members/properties.md +++ b/docs/fsharp/language-reference/members/properties.md @@ -1,5 +1,6 @@ --- -title: Properties (F#) +title: Properties +ms.custom: seodec18 description: Learn about F# properties, which are members that represent values associated with an object. ms.date: 05/16/2016 --- @@ -140,4 +141,4 @@ Properties can be abstract. As with methods, `abstract` just means that there is ## See also - [Members](index.md) -- [Methods](methods.md) +- [Methods](methods.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/modules.md b/docs/fsharp/language-reference/modules.md index a77b0d8e8d18a..4101eb6122388 100644 --- a/docs/fsharp/language-reference/modules.md +++ b/docs/fsharp/language-reference/modules.md @@ -1,5 +1,6 @@ --- -title: Modules (F#) +title: Modules +ms.custom: seodec18 description: Learn how an F# module is a grouping of F# code, such as values, types, and function values, in an F# program. ms.date: 04/24/2017 --- @@ -128,6 +129,6 @@ This capability is also possible in [Namespaces](namespaces.md) with F# 4.1. ## See also -- [F# Language Reference](index.md) -- [Namespaces](namespaces.md) -- [F# RFC FS-1009 - Allow mutually referential types and modules over larger scopes within files](https://github.com/fsharp/fslang-design/blob/master/FSharp-4.1/FS-1009-mutually-referential-types-and-modules-single-scope.md) +- [F# Language Reference](index.md) +- [Namespaces](namespaces.md) +- [F# RFC FS-1009 - Allow mutually referential types and modules over larger scopes within files](https://github.com/fsharp/fslang-design/blob/master/FSharp-4.1/FS-1009-mutually-referential-types-and-modules-single-scope.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/namespaces.md b/docs/fsharp/language-reference/namespaces.md index 51bd4fde325de..ddb16a4011388 100644 --- a/docs/fsharp/language-reference/namespaces.md +++ b/docs/fsharp/language-reference/namespaces.md @@ -1,5 +1,6 @@ --- -title: Namespaces (F#) +title: Namespaces +ms.custom: seodec18 description: Learn how an F# namespace allows you to organize code into areas of related functionality by enabling you to attach a name to a grouping of program elements. ms.date: 12/08/2018 --- @@ -119,4 +120,4 @@ This feature is also available for top-level [Modules](modules.md). - [F# Language Reference](index.md) - [Modules](modules.md) -- [F# RFC FS-1009 - Allow mutually referential types and modules over larger scopes within files](https://github.com/fsharp/fslang-design/blob/master/FSharp-4.1/FS-1009-mutually-referential-types-and-modules-single-scope.md) +- [F# RFC FS-1009 - Allow mutually referential types and modules over larger scopes within files](https://github.com/fsharp/fslang-design/blob/master/FSharp-4.1/FS-1009-mutually-referential-types-and-modules-single-scope.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/object-expressions.md b/docs/fsharp/language-reference/object-expressions.md index f61b5180c8028..9b1d2caa77f21 100644 --- a/docs/fsharp/language-reference/object-expressions.md +++ b/docs/fsharp/language-reference/object-expressions.md @@ -1,5 +1,6 @@ --- -title: Object Expressions (F#) +title: Object Expressions +ms.custom: seodec18 description: Learn how to use F# object expressions when you want to avoid the extra code and overhead required to create a new, named type. ms.date: 05/16/2016 --- @@ -36,4 +37,4 @@ You use object expressions when you want to avoid the extra code and overhead th ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/operator-overloading.md b/docs/fsharp/language-reference/operator-overloading.md index d9fa82abceae7..5bc9722ace834 100644 --- a/docs/fsharp/language-reference/operator-overloading.md +++ b/docs/fsharp/language-reference/operator-overloading.md @@ -1,5 +1,6 @@ --- -title: Operator Overloading (F#) +title: Operator Overloading +ms.custom: seodec18 description: Learn how to overload arithmetic operators in a class or record type and at the global level in F#. ms.date: 05/16/2016 --- @@ -151,4 +152,4 @@ The keyword `inline` is often used with global operators, which are often small ## See also -- [Members](members/index.md) +- [Members](members/index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/options.md b/docs/fsharp/language-reference/options.md index bd365f2fa8fed..528adf75065e5 100644 --- a/docs/fsharp/language-reference/options.md +++ b/docs/fsharp/language-reference/options.md @@ -1,5 +1,6 @@ --- -title: Options (F#) +title: Options +ms.custom: seodec18 description: Learn how to use F# option types when an actual value might not exist for a named value or variable. ms.date: 05/16/2016 --- @@ -62,4 +63,4 @@ Options can be converted to lists or arrays. When an option is converted into ei ## See also - [F# Language Reference](index.md) -- [F# Types](fsharp-types.md) +- [F# Types](fsharp-types.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/parameters-and-arguments.md b/docs/fsharp/language-reference/parameters-and-arguments.md index ba22d857c722b..a2dfc59809cda 100644 --- a/docs/fsharp/language-reference/parameters-and-arguments.md +++ b/docs/fsharp/language-reference/parameters-and-arguments.md @@ -1,5 +1,6 @@ --- -title: Parameters and Arguments (F#) +title: Parameters and Arguments +ms.custom: seodec18 description: Learn about F# language support for defining parameters and passing arguments to functions, methods, and properties. ms.date: 05/16/2016 --- @@ -202,4 +203,4 @@ true ## See also -- [Members](members/index.md) +- [Members](members/index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/pattern-matching.md b/docs/fsharp/language-reference/pattern-matching.md index 04398a1663507..c5744657d78b7 100644 --- a/docs/fsharp/language-reference/pattern-matching.md +++ b/docs/fsharp/language-reference/pattern-matching.md @@ -1,5 +1,6 @@ --- -title: Pattern Matching (F#) +title: Pattern Matching +ms.custom: seodec18 description: Learn how patterns are used in F# to compare data with logical structures, decompose data into constituent parts, or extract information from data. ms.date: 05/16/2016 --- @@ -199,4 +200,4 @@ The following example uses the null pattern and the variable pattern. - [Match Expressions](match-expressions.md) - [Active Patterns](active-patterns.md) -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/query-expressions.md b/docs/fsharp/language-reference/query-expressions.md index 5a4d1703048a0..211c008acae9c 100644 --- a/docs/fsharp/language-reference/query-expressions.md +++ b/docs/fsharp/language-reference/query-expressions.md @@ -1,5 +1,6 @@ --- -title: Query Expressions (F#) +title: Query Expressions +ms.custom: seodec18 description: Learn about query expression support for LINQ in the F# programming language. ms.date: 05/16/2016 --- @@ -2426,4 +2427,4 @@ end - [F# Language Reference](index.md) - [Linq.QueryBuilder Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/linq.querybuilder-class-%5bfsharp%5d) -- [Computation Expressions](Computation-Expressions.md) +- [Computation Expressions](Computation-Expressions.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/records.md b/docs/fsharp/language-reference/records.md index 7c2bc078692cc..e0a8797b9894f 100644 --- a/docs/fsharp/language-reference/records.md +++ b/docs/fsharp/language-reference/records.md @@ -1,5 +1,6 @@ --- -title: Records (F#) +title: Records +ms.custom: seodec18 description: Learn how F# records represent simple aggregates of named values, optionally with members. ms.date: 05/16/2016 --- @@ -122,4 +123,4 @@ If you need reference equality for records, add the attribute `[ = - [F# Language Reference](index.md) - [Compiler Directives](compiler-directives.md) -- [Code Formatting Guidelines](code-formatting-guidelines.md) +- [Code Formatting Guidelines](code-formatting-guidelines.md) \ No newline at end of file diff --git a/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md b/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md index 306e3d3fa3dc1..a5a2048b93ca3 100644 --- a/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md +++ b/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md @@ -1,7 +1,8 @@ --- -title: Async Programming in F# +title: Async Programming description: Learn how F# async programming is accomplished via a language-level programming model that is easy to use and natural to the language. ms.date: 06/20/2016 +ms.custom: seodec18 --- # Async Programming in F# # @@ -211,4 +212,4 @@ And that’s it! * [Async Workflows on MSDN](https://msdn.microsoft.com/library/dd233250.aspx) * [Asynchronous Sequences for F#](https://fsprojects.github.io/FSharp.Control.AsyncSeq/library/AsyncSeq.html) -* [F# Data HTTP Utilities](https://fsharp.github.io/FSharp.Data/library/Http.html) +* [F# Data HTTP Utilities](https://fsharp.github.io/FSharp.Data/library/Http.html) \ No newline at end of file diff --git a/docs/fsharp/tutorials/fsharp-interactive/index.md b/docs/fsharp/tutorials/fsharp-interactive/index.md index acb6d5161bba9..956d32b525847 100644 --- a/docs/fsharp/tutorials/fsharp-interactive/index.md +++ b/docs/fsharp/tutorials/fsharp-interactive/index.md @@ -2,6 +2,7 @@ title: F# Interactive (fsi.exe) Reference description: Learn how F# Interactive (fsi.exe) is used to run F# code interactively at the console or to execute F# scripts. ms.date: 05/16/2016 +ms.custom: seodec18 --- # Interactive Programming with F# # @@ -94,4 +95,4 @@ test |Title|Description| |-----|-----------| |[F# Interactive Options](../../language-reference/fsharp-interactive-options.md)|Describes command-line syntax and options for the F# Interactive, fsi.exe.| -|[F# Interactive Library Reference](https://msdn.microsoft.com/visualfsharpdocs/conceptual/fsharp-interactive-library-reference)|Describes library functionality available when executing code in F# interactive.| +|[F# Interactive Library Reference](https://msdn.microsoft.com/visualfsharpdocs/conceptual/fsharp-interactive-library-reference)|Describes library functionality available when executing code in F# interactive.| \ No newline at end of file diff --git a/docs/fsharp/tutorials/type-providers/creating-a-type-provider.md b/docs/fsharp/tutorials/type-providers/creating-a-type-provider.md index 50739348bfa1d..1d587932e8cd9 100644 --- a/docs/fsharp/tutorials/type-providers/creating-a-type-provider.md +++ b/docs/fsharp/tutorials/type-providers/creating-a-type-provider.md @@ -1,7 +1,8 @@ --- -title: "Tutorial: Create a Type Provider (F#)" +title: "Tutorial: Create a Type Provider" description: Learn how to create your own F# type providers in F# 3.0 by examining several simple type providers to illustrate the basic concepts. ms.date: 05/16/2016 +ms.custom: seodec18 --- # Tutorial: Create a Type Provider @@ -1131,4 +1132,4 @@ You can often debug type providers most easily by using fsc.exe on a test script ## See also - [Type Providers](index.md) -- [The Type Provider SDK](https://github.com/fsprojects/FSharp.TypeProviders.SDK) +- [The Type Provider SDK](https://github.com/fsprojects/FSharp.TypeProviders.SDK) \ No newline at end of file diff --git a/docs/fsharp/tutorials/type-providers/index.md b/docs/fsharp/tutorials/type-providers/index.md index fe287cb14a652..a594c5f2f307e 100644 --- a/docs/fsharp/tutorials/type-providers/index.md +++ b/docs/fsharp/tutorials/type-providers/index.md @@ -2,6 +2,7 @@ title: Type Providers description: Learn how an F# type provider is a component that provides types, properties, and methods for use in your programs. ms.date: 04/02/2018 +ms.custom: seodec18 --- # Type Providers @@ -35,4 +36,4 @@ Where necessary, you can [create your own custom type providers](creating-a-type - [Tutorial: Create a Type Provider](creating-a-type-provider.md) - [F# Language Reference](../../language-reference/index.md) -- [Visual F#](../../index.md) +- [Visual F#](../../index.md) \ No newline at end of file diff --git a/docs/fsharp/tutorials/type-providers/troubleshooting-type-providers.md b/docs/fsharp/tutorials/type-providers/troubleshooting-type-providers.md index bad79b0ddca93..ded97c43518a4 100644 --- a/docs/fsharp/tutorials/type-providers/troubleshooting-type-providers.md +++ b/docs/fsharp/tutorials/type-providers/troubleshooting-type-providers.md @@ -2,6 +2,7 @@ title: Troubleshooting Type Providers description: Discover potential solutions for the problems that you are most likely to encounter when you use type providers in F#. ms.date: 05/16/2016 +ms.custom: seodec18 --- # Troubleshooting Type Providers @@ -20,4 +21,4 @@ If you encounter a problem when you work with type providers, you can review the ## See also -- [Type Providers](index.md) +- [Type Providers](index.md) \ No newline at end of file diff --git a/docs/fsharp/tutorials/type-providers/type-provider-security.md b/docs/fsharp/tutorials/type-providers/type-provider-security.md index b95dd3d778db9..dd16a45bc0f9b 100644 --- a/docs/fsharp/tutorials/type-providers/type-provider-security.md +++ b/docs/fsharp/tutorials/type-providers/type-provider-security.md @@ -2,6 +2,7 @@ title: Type Provider Security description: Learn about type provider security in F#, including how to change the trust settings for a type provider. ms.date: 05/16/2016 +ms.custom: seodec18 --- # Type Provider Security @@ -23,4 +24,4 @@ If you decide to change the trust setting directly in Visual Studio, perform the ## See also -- [Type Providers](index.md) +- [Type Providers](index.md) \ No newline at end of file