对于依赖类型,可以为排序列表定义归纳类型,例如:
data IsSorted : {a: Type} -> (ltRel: (a -> a -> Type)) -> List a -> Type where
IsSortedZero : IsSorted {a=a} ltRel Nil
IsSortedOne : (x: a) -> IsSorted ltRel [x]
IsSortedMany : (x: a) -> (y: a) -> .IsSorted rel (y::ys) -> .(rel x y) -> IsS
我试图在Lean中证明,如果一项小于排序列表的头部,则它不是列表的成员。
theorem not_in_greater {α: Type} [d: decidable_linear_order α] {x h: α} (t: list α) (Hs: is_sorted (h::t)) (Hlt: x < h) : x ∉ (h::t) :=
match t with
| [] := not_eq_not_in (ne_of_lt Hlt)
| (y::ys) :=
have x_neq_h: x ≠ h, from ne_of_lt Hlt,
have
我正在尝试比较list of integer的元素,看看它们是否是有序的。我用的是Amzi!
我试过几次,但没什么效果.:(
ordered([X]).
ordered([N|[N1|L]]) :- N <= N1, ordered([N1|L]).
ordered_([X]).
ordered_([Head,Head1|Tail]) :- Head <= Head1, ordered_([Head1|Tail]).
如果输入此列表,两者都返回no:
ordered([1,2,3,4]).
ordered_([1,2,3,4]).
我知道我需要比较head和head of the
我没有任何机会,但在这里注册,以寻求澄清一个问题,我正在努力理解。我是一个几乎没有编码经验的傻瓜,我正在学习AppleScript,在我正在阅读的教科书中(H.Rosenthal,H.Sanderson )。MacOSX.2010(第3版)脚本和自动化综合指南)我无意中发现了气泡排序的简要大纲。有关的例子是:
on bubblesort(the_list)
set is_sorted to false
repeat until is_sorted
set is_sorted to true
repeat with i from 1 to (count t
练习:
编写一个名为is_sorted的函数,该函数将列表作为参数,如果列表按升序排序,则返回True,否则返回False。您可以假设(作为先决条件)列表中的元素可以与关系运算符<、>等进行比较。
例如,is_sorted([1,2,2])应该是return True,is_sorted(['b', 'a'])应该是return False。
到目前为止,我已经:
def is_sorted(stuff):
for i in stuff:
if stuff[i+1] > stuff[i]:
return True
因此,我应该编写一个函数,如果所述序列从最小到最大排列,则返回true。我能够理解字符串和数字列表,但是对于空列表,我无法理解为什么它不会返回为true。
这是为了理解,并可能帮助我理解如何更好地操作我的循环。
def is_sorted(seq):
for i in range(0, len(seq)):
if seq[i]<seq[i+1]:
return True
else:
return False
print(is_sorted([])) # expected to be true but
我尝试了一个练习,如果一个列表按升序排序,它希望我返回True,否则返回False。List1应该返回True,而List2应该返回False。
我尝试创建一个名为sort的新变量,使用排序方法对其进行排序,并将其与未修改的列表进行比较,并使用for循环检查排序列表中的元素和未修改的列表中的元素是否按相同顺序匹配。我不太确定如何正确处理这个问题,因为我得到的都是假回报。
def is_sorted(t):
sort = t.sort()
for element in t:
if t == sort:
return True
所以我有这样的代码
// REQUIRES: n >= 1. Elements a[0] ... a[n-1] exist.
// PROMISES
// If n == 1, returns 1.
// Returns 1 if all of a[0] <= a[1] ... a[n-2] <= a[n-1] are true.
// Otherwise, returns 0.
#include <assert.h>
#include "array-utils4F.h"
#define UNIT_TESTS 1
int is
def kindDetector(list):
for i in range(0,len(list)):
if type(list[i]) != type('a'):
return 0
return 1
def findWords(list,i):
if i == 0:
return list[0]
if list[i] < findWords(list,i-1):
return list.pop(i)
else:
return list.po