r5rs

    4熱度

    3回答

    我想使用預定義函數(max)(R5RS)與數字的list,其在長度上變化。不幸的是,(max)接受這樣的輸入: (max 2 43 5 6) => 43 我試圖使用它,像這樣: (define lst '(3 5 53 4 53 54 32)) (max lst) 這將產生以下錯誤。 max: expects argument of type <real number>; given

    13熱度

    1回答

    我對方案比較陌生,很難在網上找到一份具體的文檔,概述R6RS發生的主要變化。任何人都在關心精心製作?

    2熱度

    2回答

    一邊想着實施方案R5RS的樣子,我就成了疑惑R5RS以下提取物(22-23頁): (餘-13 -4)==> -1 (餘數-13 -4.0)==> -1.0;不精確 (LCM 32 -36)==> 288 (LCM 32.0 -36)==> 288.0;不精確 (分母(/ 6 4))==> 2 (分母(exact->不精確(/ 6 4)))==> 2.0 我們應該明白,即使-4.0,32.0和(精確

    1熱度

    1回答

    我一直在尋找一種方法在文件中寫一個換行 我必須使用R5RS,我在前面的問題(換行符端口)中看到,但這不起作用這個版本,\ n, 都沒有任何想法? 一切都被寫在一行 (寫 「你好」 P) (寫 「W」 P) 給我hellop文件

    8熱度

    1回答

    這是關於SICP的第3.5章,其中正在討論流。這個想法是: (cons-stream 1 (display 'hey)) 不應該評估cons-stream的第二部分,所以它不應該打印「嘿」。這確實發生了,我得到下面的輸出: 哎(1#<承諾>) 所以我的結論是,延遲不是作爲一種特殊的形式來實現?或者我做錯了什麼?我使用以下實現: (define (cons-stream a b) (c

    2熱度

    2回答

    我喜歡DrRacket IDE,但是目前我正在構建一個寵物項目,我想獨立於它,這意味着我只承諾只使用R5RS標準過程。 事情是,在DrRacket中有這個過程叫做「錯誤」,我想繼續使用,但是我在標準中找不到它。 我想知道的是,如果有一種方法只使用標準過程來模擬「錯誤」過程,以便代碼可以在Scheme的不同實現之間移植。 我試過「顯示」,但它似乎並不完全是我想要的,因爲這不會在輸出時發出錯誤信號。

    0熱度

    1回答

    R5RS 6.3.3說 (eq? 'bitBlt (string->symbol "bitBlt")) ==> #f 這是否意味着 (eq? 'bitBlt (string->symbol (symbol->string 'bitBlt))) ==> #f? 麋鹿返回#牛逼! R5RS還說 (string->symbol "mISSISSIppi") ==> the symbol with

    2熱度

    2回答

    (define bootstrap-c-code (define (from-file file-name) (let* ((ip (open-input-file file-name)) (res (read-text-file-from-input-port ip))) (close-input-port ip) res))

    1熱度

    1回答

    考慮在EBNF以下語法: http://pauillac.inria.fr/cdrom_a_graver/www/bigloo/manual/r5rs-8.html 的quasiquotations語法給出沒有上下文無關: <quasiquotation> --> <quasiquotation 1> <qq template 0> --> <expression> <quasiquotati

    1熱度

    1回答

    考慮在解析器以下規則: expression : IDENTIFIER | (...) | procedure_call // e.g. (foo 1 2 3) | macro_use // e.g. (xyz (some datum)) ; procedure_call : '(' expression expression* ')