2014-04-07 33 views
0

開發返回true如果學生有3.7以上的GPA成績謂詞a-student?,並用它來 開發功能a-students?,消耗的學生名單,併產生所有 列表gpa高於3.7的學生。使用過濾器。摘要功能 - 球拍博士

+0

我能夠做的第一部分和發展謂詞,學生,我只是有找出如何將它的問題功能的學生。 – AArce

+0

我們需要一些關於您在嘗試解決問題之前如何解決問題的信息,然後才能提供幫助。我甚至不確定問題是什麼。 –

+0

我的謂語是(check-expect(a-student?3.8)true) (check-expect(a-student?2.7)false) (define(a-student?student-GPA) (cond [(> student -GPA 3.7)true] [(<= student-GPA 3.7)false]))。 – AArce

回答

0

由於暗示說 - 你a-students功能使用filter

(filter (lambda (student) 
      (a-student? (student-GPA student))) 
     list-of-students) 
+0

當我試圖做到這一點之前,我收到錯誤消息>:期待一個真實的第一個參數,給(生 - 學生「蒂姆」1234 3.8)。這是因爲我的謂詞是(check-expect(a-student?3.8)true) (check-expect(a-student?2.7)false) (define(a-student?student-GPA) (cond [ (學生-GPA 3.7)true] [(<= student-GPA 3.7)false])),我的第二個函數的檢查期望是(check-expect(a-students(list S1 S2))S1)。先前定義了S1和S2(定義S1(make-student「Tim」1234 3.8)) (定義S2(make-student「Bob」1236 2.7))。 – AArce

+0

我只是困惑如何解決這個錯誤信息。 – AArce

+0

@AArce我用一個可能的解決方案更新了我的答案,問題是您的'學生?'程序正在接收GPA作爲參數,而不是學生。你可以在'a-students'函數(如上所述)或'a-student?'謂語中提取GPA,但是無論哪種方式,你都必須在某處提取GPA(我猜測程序要做到這一點被稱爲「學生 - GPA」) –