小编Pho*_*404的帖子

获取Haskell列表中下一个最小元素的索引

我是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)

haskell compiler-errors list

6
推荐指数
1
解决办法
252
查看次数

角度从父组件更改子组件样式,但不是全局更改

我创建了一个<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)

css components encapsulation angular-material angular

1
推荐指数
2
解决办法
2万
查看次数