标签: f#

NXC和F#中的结构

我有个问题:

在NXC中有这样的结构函数:

struct colorType
{
  int colorval;
  unsigned int rawRed;
  unsigned int rawGreen;
  unsigned int rawBlue;
  unsigned int normRed;
  unsigned int normGreen;
  unsigned int normBlue;
};

colorType cubeColor[6*9];
Run Code Online (Sandbox Code Playgroud)

我在F#中创建了相同的结构,如下所示:

type colorType =
    struct 
        val colorval: int
        val rawRed: uint16
        val rawGreen: uint16
        val rawBlue: uint16 
        val normRed: uint16
        val normGreen: uint16
        val normBlue: uint16
    end
Run Code Online (Sandbox Code Playgroud)

但我不知道如何调用colorType cubeColor [6*9]; 在F#中.

你可以帮我解决这个案子吗?

谢谢.

c c++ f# struct nxc

-3
推荐指数
1
解决办法
140
查看次数

在F#中对列表执行功能

好吧,我已经花了将近10个小时试图在F#解决这个问题

我需要按字母顺序对列表进行排序并反转列表

  • 我甚至不知道从哪里开始按字母顺序对它们进行排序.
  • 反向列表只返回一个包含所有10个元素的列表.有人请帮助我

我想出了什么:

[<EntryPoint>]
 printfn "Enter 10 Names";;
 let mutable list = [for i in 1 .. 10 -> System.Console.ReadLine(); ]
 printfn "%A" list
 //let list = List.sort
 //printfn "%A" list
 let reverseList list = List.fold (fun acc elem -> elem::acc) [] list
 printfn "%A" (reverseList [for i in 1 .. 10 -> List.iteri])
Run Code Online (Sandbox Code Playgroud)

string f# list

-3
推荐指数
1
解决办法
165
查看次数

将Ocaml/Haskell类型定义转换为Haskell:*在定义中

尝试将类型定义从Ocaml/F#转换为Haskell,收到错误:

error: parse error on input `*'
Run Code Online (Sandbox Code Playgroud)

我怎么能纠正代码?

当前的Haskell代码:

data Func sa sb =
    Empty
    | Leaf Int * (sa * sb) List
    | Branch Int * Int * (Func sa sb) * (Func sa sb)
Run Code Online (Sandbox Code Playgroud)

ocaml的:

type ('a,'b)func =
Empty
| Leaf of int * ('a*'b)list
| Branch of int * int * ('a,'b)func * ('a,'b)func;;
Run Code Online (Sandbox Code Playgroud)

F#

type func<'a,'b> =
    | Empty
    | Leaf of int * ('a * 'b) list
    | Branch of int * int …
Run Code Online (Sandbox Code Playgroud)

f# ocaml haskell

-3
推荐指数
1
解决办法
149
查看次数

使用F#异步工作流程

由于这个问题很大,我会就这个问题发表看法,这样你就可以简单地告诉我,我是否正确.如果没有,在哪里纠正.如果我的观点是肤浅的,请提供F#异步使用的概述.在μ理解中,要编写异步程序,您需要将异步代码放入async {expression}等"异步"块中,并使用"let!" 或"使用!" 要将名称绑定到基元,那么您需要使用方法来运行此异步表达式,如"Async.Run".此外,您可以使用异常处理来处理异常,并在必要时取消取消.我也知道在F#核心库中定义了几个原语,以及I/O操作的F#扩展.我只需要确定这些事情之间的关系.如果您认为我对异步工作流程的看法是肤浅的,请概述一下我上面提到的用法.非常感谢你!

f# asynchronous

-4
推荐指数
1
解决办法
138
查看次数

什么:>运算符在F#中做什么?

什么是:>运营商在F#中吗?

例如

myFunction x :> System.Object
Run Code Online (Sandbox Code Playgroud)

f# operators

-4
推荐指数
1
解决办法
128
查看次数

F#解析命令行参数

我需要从命令kine(cmd)获取3个参数我写了以下内容并得到一个错误:

[<EntryPoint>]
let main(args) = 

   printfn "args: %A" args.[0]
   let xmlP = args.[0]
   let excelFormatP = args.[1]
   let excelP = args.[2]

   printfn "%A" (functionParseXmlToExcel(xmlP , excelFormatP , excelP)) |> ignore

   0
Run Code Online (Sandbox Code Playgroud)

我知道我需要解析参数(3个字符串).

当我尝试从命令行运行3个文件时我得到的错误:索引超出了数组的范围...

有人可以帮我吗?

谢谢

f#

-4
推荐指数
1
解决办法
1162
查看次数

当我只声明一个选项参数时,为什么需要提供两个选项参数?

当我只声明一个选项参数时,为什么需要提供两个选项参数?

我声明了以下类型:

type MiddleName =    MiddleName of string option
Run Code Online (Sandbox Code Playgroud)

为了使编译器满意,我必须提供两次Some case值:

let middleName = Some <| MiddleName (Some "Kevin")
Run Code Online (Sandbox Code Playgroud)

注意:我希望只提供一些案例值.

因此,我认为我应该这样做:

let middleName = MiddleName (Some "Kevin")
Run Code Online (Sandbox Code Playgroud)

我甚至这样做了吗?因此,中间名应该是可选的,因此,我试图对其进行建模.

附录:

type FirstName =     FirstName  of string
type LastName  =     LastName   of string
type MiddleName =    MiddleName of string option
type MaidenName =    MaidenName of string option
type Email =         Email      of string
type Phone =         Phone      of string

type Name = {
    FirstName:FirstName
    LastName:LastName
    MiddleName:MiddleName option
    MaidenName:MaidenName option
}

let …
Run Code Online (Sandbox Code Playgroud)

f#

-4
推荐指数
1
解决办法
80
查看次数

标签 统计

f# ×7

asynchronous ×1

c ×1

c++ ×1

haskell ×1

list ×1

nxc ×1

ocaml ×1

operators ×1

string ×1

struct ×1