2013-07-11 35 views
2

有誰知道DrRacket是否有Python的pass語句或可用於指示執行代碼什麼都不做的其他成語的等效語言?等效於drracket中的「pass」

+2

你能向我們展示一小段代碼展示你有什麼。查看第一個答案的評論讓我感到一種預感,即如果在傳遞給map(或摺疊)的函數中存在key,但沒有任何代碼,我就會在黑暗中翻滾。既然你提出了python,你可能還需要在python中包含一個相同的(snoplet)。 – Sylwester

+0

您可以通常(總是)避免使用「pass」或「nop」語句正確定義程序中的條件,除非所有表達式在Scheme中都有值,即使它是無效的。在Python中,'pass'作爲佔位符是不可避免的,但是我懷疑你會需要Scheme中的等價語句(它不存在)......只要程序邏輯正確 –

+1

順便說一下,R​​acket是語言的名稱。 DrRacket是Racket附帶的IDE的名稱。 – stchang

回答

1

如果你想要寫一個空語句(一個沒有有用的結果),也許這會爲你工作:

(void) 

...但它會更好,如果你用一個例子證明什麼這正是你想要做的。無論如何,這裏有一個鏈接到documentation的相應部分。

+0

它是一個想要用一個可能存在或者可能不存在的鍵索引一個哈希映射的情況,所以如果沒有鍵發現錯誤返回,我只想忽略該錯誤並繼續執行。 – cobie

+1

請發佈代碼,並將其設爲[SSCCE](http://sscce.org/)。注意,調用'(void)'_will_會返回一個值,'#',並且根據你正在做的事情做它可能不是正確的事情。我相信你錯誤地處理了這個問題,最好先檢查鑰匙是否存在 –

1

這是一種方法來做你的哈希示例。

(hash-ref (hash) "not there" void) 

但現在你必須檢查你是否得到void或你想要的值。您可能還對hash-update!hash-updatedocs)感興趣,它將對現有密鑰的檢查與對於密鑰不存在的情況下的默認行爲進行組合。

1

當我在寫這個答案,你的問題是種間傳播(一)你原來的問題及(b)您的評論對奧斯卡的答案:

它想索引的哈希地圖的情況下,一個可能存在也可能不存在的鍵,所以如果沒有鍵發現錯誤返回,我只想忽略錯誤並繼續執行。

以半句字面上:處理通用的方法 - 和有效地「忽略」 - 一個例外是with-handlers

(hash-ref (hash) "nothing") 
;; hash-ref: no value found for key 
;; key: "nothing" 

(with-handlers ([exn:fail? (lambda (exn) 
          "hum dee dum")]) 
    (hash-ref (hash) "nothing")) 
;; "hum dee dum" 

這似乎不是有什麼關係Python pass as described here ,但也許pass可以用來忽略Python中的錯誤;我只是不太清楚

0

如果你可以處理一個句法形式,那麼begin的作品。

(if <conditional> (begin)) 

如果你需要一個函數,那麼這個工程

(lambda ignore #f) 

,你可能只是避免「的東西,什麼也不做」返工按你的邏輯,導致了「無」的需要。