我正在尝试解决一些基本的难题以学习序言。我试图递归地获取列表中给定元素的索引。我被困住试图解决问题,我不确定为什么。当我执行此操作时,它只会返回“ false”,而不是索引。
numGrades <- c(66,02,99,59,82)
letGrades <- cut(
numGrades,
breaks = c(-Inf, 6:9, Inf) * 10,
labels = LETTERS[c(6, 4:1)],
right = FALSE
)
letGrades
library(dplyr)
letGrades <- case_when(
numGrades >= 90 ~ "A",
numGrades >= 80 ~ "B",
numGrades >= 70 ~ "C",
numGrades >= 60 ~ "D",
TRUE ~ "F"
)
letGrades
我用来检查代码elem(_, [], 0).
elem(E, [E | T], RES) :-
elem(E, T, CUR_RES), RES is CUR_RES + 1.
答案 0 :(得分:1)
您的
问题 @override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
children: <Widget>[
SingleChildScrollView(
child: Center(
child: Column(
children: <Widget>[
child(),
child(),
child(),
child(),
child(),
],
),
),
),
Align(
alignment: Alignment.bottomCenter,
child: Opacity(opacity: showBottomBar ? 1 : 0, child: bottomBar()),
)
],
),
);
是当它试图与基本情况统一时
elem(2, [1, 2], X).
失败,因为第二个参数不为空。
当试图与递归情况统一
elem(_, [], 0).
elem(E, [E | T], RES) :-
elem(E, T, CUR_RES),
RES is CUR_RES + 1.
是E
,它要求列表是2
,但是由于列表是[2|T]
,因此也无法统一。
这更接近您想要的
[1,2]
示例运行:
elem(E,[E|_],0).
elem(E,[_|T],Res) :-
elem(E,T,Cur_rest),
Res is Cur_rest + 1.
您需要在基本情况下而不是在递归情况下对要查找的值进行匹配。完成后,其余更改将根据需要进行。