我有个问题:
在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#中.
你可以帮我解决这个案子吗?
谢谢.
好吧,我已经花了将近10个小时试图在F#解决这个问题
我需要按字母顺序对列表进行排序并反转列表
我想出了什么:
[<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) 尝试将类型定义从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#异步使用的概述.在μ理解中,要编写异步程序,您需要将异步代码放入async {expression}等"异步"块中,并使用"let!" 或"使用!" 要将名称绑定到基元,那么您需要使用方法来运行此异步表达式,如"Async.Run".此外,您可以使用异常处理来处理异常,并在必要时取消取消.我也知道在F#核心库中定义了几个原语,以及I/O操作的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个文件时我得到的错误:索引超出了数组的范围...
有人可以帮我吗?
谢谢
当我只声明一个选项参数时,为什么需要提供两个选项参数?
我声明了以下类型:
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)