是否有可能解构C#中的元组,类似于F#?例如,在F#中,我可以这样做:
// in F#
let tupleExample = (1234,"ASDF")
let (x,y) = tupleExample
// x has type int
// y has type string
在C#中可以做类似的事情吗?例如:
// in C#
var tupleExample = Tuple.Create(1234,"ASDF");
var (x,y) = tupleExample;
// Compile Error. Maybe I can do this if I
我有以下代码:
type Message<'a> = | Message of 'a
let handleMessage message =
match box message with
| :? Message<_> -> printfn "Message"
| _ -> printfn "Not message"
let handleMessageEx message =
match box message with
| :? Message<int>
我今天刚刚开始学习F#,并且已经开始学习上的F#教程
在上面的部分中,提供了三个代码片段来解释记录和选项类型:
type Book =
{ Name: string;
AuthorName: string;
Rating: int option;
ISBN: string }
let unratedEdition =
{ Name = "Expert F#";
AuthorName = "Don Syme, Adam Granicz, Antonio Cisternino";
Rating = None
对不起,如果这是个愚蠢的问题,但我是f#的新手,在这个问题上找不到任何东西。我正在做一项学校作业来拼字,并试图定义一个函数,该函数检索特定(字母、值)组合的点值,给定一个单词和该字母的索引。类型词必须定义为type word = (char * int) list
我定义了类型单词,并创建了一个单词"Hello“
type word = Word of (char * int) list
let hello = Word (['H', 4; 'E', 1; 'L', 1; 'L', 1; 'O', 2])
我试图在F#代码中使用Rhino Mock,但以下代码有问题:
let service = MockRepository.GenerateMock<IMyService>()
service.Stub(s => s.Name).Return("Service");
这并不奇怪,因为存根不是IMyService接口的一部分,它是Rhino Mocks定义的C#扩展方法。
稍微修改一下代码就行了:
let service = MockRepository.GenerateMock<IMyService>()
RhinoMocksExtensions.S
我需要实现一个静态扩展方法,支持一些基本原语类型(如整数、浮点数等)上的成员约束。下面是我的有符号整数代码:
module MyOperators =
let inline foo (x : ^T) = (^T : (static member Foo : ^T -> int) (x))
type System.Int32 with
static member Foo(x : Int32) = 7 // static extension
测试代码:
open MyOperators
let x = foo 5 // x should be 7
这是为了让PHP7联系mysql。
我想查询名为"database1“的数据库,并让它在web浏览器中打印这个数据库的内容。
<?php
function check_password($username, $password) {
// Create connection
$db = new mysqli('localhost','<DB-USERNAME>','<USER-PASSWORD>','<DATABASENAME>');
// Check for errors
i
我想知道如何将这段代码逐行从C#转换到F#。我不想使用F#的任何成语或类似的东西,我试图了解如何在F#中激发和反射。
using System.Linq;
namespace System.Collections.Generic
{
public static class EnumerableExtensions
{
private static readonly Random random;
static EnumerableExtensions()
{
random = new Random();
有关于如何在用F#?编写的视图模型上调用DelegateCommand的示例吗?
我已经找到了用于 DelegateCommand实现的以下代码
type DelegateCommand<a>(execute : 'a -> unit, ?canExecute : 'a -> bool) =
let event = Event<_,_>()
interface ICommand with
member this.CanExecute(param : obj) =
if canExecute.IsSome the
如何将C#元组转换为F#元组?
具体来说,我有一个结果类型的C#实现:
public class Result<T,E>
{
public Result(T data) => Ok = (true,data);
public Result(E data) => Error = (true,data);
public (bool,T) Ok { get; }
public (bool,E) Error { get; }
}
我希望获取Ok结果或错误结果的元组值,并在我的F#代码中使用它。
示例:
let result = d
所以我有个剧本:
#r @"..\packages\FSharp.Data.2.4.2\lib\net45\FSharp.Data.dll"
#r "System.Xml.Linq.dll"
open FSharp.Data
// provide some URL, file path, or raw JSON sample
// that can be used at compile time to generate types
type Json = JsonProvider<"example.json">
// at ru
我正在使用.Net测试一些redis,我已经阅读了这篇教程,并且使用c#工作得很好,现在当我尝试将它翻译成f#时,我有一个奇怪的行为,首先我创建了一个简单的f#类(使用类型也不起作用,但这是预期的)...basicaly这个类是这样的:
//I ve used [<Class>] to
type Video (id : int, title : string , image : string , url : string) =
member this.Id = id
member this.Title = title
member this.Image = image
我不是一个功能性程序员。
我正在学习F#。
我这里有个问题。
让我从以下代码开始:
type XmlNode(tagName, innerValue) =
member this.TagName = tagName
member this.InnerValue = innerValue
member this.Atts = Dictionary<string, obj>()
我不使用F# dict,因为(我知道)它是只读的,但是我显然需要修改我的属性。所以我真的在努力使它成为纯粹的功能性方式:
type XmlNode with memb
我刚开始阅读Tamizhvendan的“F#应用”一书,发现了下面的代码片段:
type WebPart = Context -> Async<Context option>
我一直在查看微软的F#文档以及我最喜欢的F#站点Scott的F# for Fun and Profit,但是没有找到任何关于这类类型的引用。它看起来不像一个唱片类型。这似乎是一种普通的旧功能。那么这是什么呢?
谢谢你的帮助,女孩和男人。