我正在学习编程语言Elm.我想访问一个联盟的特定领域.我无法访问它.我在文档中搜索过.但我找不到任何地方如何访问联盟的特定领域.代码如下:
import Graphics.Element exposing (show)
import List exposing (length, filter, map)
type Person
= Person { fname: String, lname: String, age: Int}
p1 = Person { fname="ABC", lname="XYZ", age=23 }
p2 = Person { fname="JK", lname="Rowling", age=24 }
-- These are unions with fields
people : List Person
people = [ p1
, p2
, Person {fname= "Anakin", lname= "Luke", age= 12}
]
main = show [people]
Run Code Online (Sandbox Code Playgroud)
我不能用,p1.name因为p1不是记录.我如何进入该领域fname的p1还是p2?
我在Java中遇到过与此类似的代码片段
public <H extends ABC<I, U>, I, U> Set<U> get(Type<H, I, U> type) {
}
Run Code Online (Sandbox Code Playgroud)
我不明白.我只知道它需要参数化类型的参数Type<H,I,U>,并返回一个Set<U>返回类型.但是,我不明白这部分:
<H extends ABC<I,U>, I,U>
Run Code Online (Sandbox Code Playgroud)
任何人都可以澄清一下吗?
此致,Chetan
我正在尝试为方向定义新的数据类型.但是,当我在ghci中加载文件时,我收到错误"Not a data constructor:left".
这是代码片段:
data Dir = left
| right
| up
| down
instance Show Dir where
show left = "left"
show right = "right"
show up = "up"
show down = "down"
-- initialpos is assumed to be valid one
move::Pos->Dir->Pos
move prevPos left = ( (-1) $ fst prevPos , snd prevPos)
move prevPos right = ( (+1) $ fst prevPos , snd prevPos )
move prevPos up = ( fst prevPos, (+1) $ …Run Code Online (Sandbox Code Playgroud)