我是Haskell的新手.我对Imperative语言很满意,但没有功能.Haskell是我的第一个函数式语言.
我想弄清楚,如何获取列表中最小元素的索引,其中我定义了最小元素.
让我通过例子来解释.
例如 :
函数签名minList :: x - > [x]
let x = 2
let list = [2,3,5,4,6,5,2,1,7,9,2]
minList x list --output 1 <- is index
Run Code Online (Sandbox Code Playgroud)
这应该返回1.因为at列表[1]是3.它返回1,因为3是x(= 2)之后的最小元素.
let x = 1
let list = [3,5,4,6,5,2,1,7,9,2]
minList x list -- output 9 <- is index
Run Code Online (Sandbox Code Playgroud)
它应该返回9,因为列表[9]是2,而2是1. x = 1之后的最小元素,由我定义.
到目前为止我尝试过的.
minListIndex :: (Ord a, Num a) => a -> [a] -> a
minListIndex x [] = 0
minListIndex x (y:ys)
| x > y = length ys
| otherwise …Run Code Online (Sandbox Code Playgroud) 我创建了一个<nextgen-table></nextgen-table>基于Mat-table(角度材质)的共享组件()。在项目中使用此组件时,发现我需要更改表列的行为(宽度)。
我已nextgen-table在其他组件中导出(假设 X, Y ),其中nextgen-table当然是子组件。
要更改 mat-table 特定列的宽度,我必须使用如下内容:
mat-cell:nth-child(1),
mat-header-cell:nth-child(1) {
flex: 0 0 40%;
text-align: left;
}
mat-cell:nth-child(2),
mat-header-cell:nth-child(2) {
flex: 0 0 20%;
}
Run Code Online (Sandbox Code Playgroud)
上面的 CSS 代码是我在 X.component.css 中实现的,但我猜它是因为封装而无法工作。
经过一番搜索后,我找到了只需在 的 Component 装饰器中添加 即可正常工作的解决方案。在这个解决方案之后,我从组件 X 导航到组件 Y,其中我没有实现上述 CSS 代码。但是组件 Y 具有前两列,因为我只想要组件 X,但不知何故组件 Y 也具有我不想要的组件 Y。encapsulation: ViewEncapsulation.Nonex.component.ts
所以我的问题是如何nextgen-table从父组件更新仅适用于父组件而不适用于其他组件的样式。
我也尝试过使用
:host(mat-cell:nth-child(1)){
flex: 0 0 40%;
text-align: left;
}
:host(mat-header-cell:nth-child(1)) {
flex: 0 0 40%;
text-align: left; …Run Code Online (Sandbox Code Playgroud)