Gauche > Archives > 2010/03/04

2010/03/04 01:50:02 UTCえんどう
#
sha*-digest*の戻り値をstring->listでリストにしようとすると*** ERROR: incomplete string not supported: 。string-ref使うのもなんなだあ
#
string-refも使えないんだ
2010/03/04 01:57:39 UTCえんどう
#
(map (cut string-byte-ref digest <>)
	 (iota (string-length digest)))
#
なんじゃこりゃー
2010/03/04 01:58:47 UTCnaoya_t
#
string->list的な何か?
2010/03/04 01:59:17 UTCえんどう
#
そうです
#
sha*-digest*の戻り値が不完全文字列なので
#
(let1 digest (sha1-digest-string (list->string data))
    (map (cut string-byte-ref digest <>)
	 (iota (string-length digest))))
#
dataは文字のリスト
2010/03/04 02:03:37 UTCnaoya_t
#
incomplete stringってu8vectorに変換できないですかね
#
できるっぽい
#
(u8vector->list (string->u8vector (sha1-digest-string "abcdefg")))
2010/03/04 02:15:20 UTC(び)
#
ひょっとして欲しいのはhexfyされたダイジェスト文字列なんじゃないの?
#
digest-hexify 使うとか
#
ああ、ダイジェスト文字列のバイト値のリストが欲しいのか...
2010/03/04 02:29:00 UTCnaoya_t
#
util.digest は便利ですね
2010/03/04 02:31:36 UTCえんどう
#
(let1 k (list->string '(#\xff #\xff #\xff))
  (map (cut format "~x" <>)
       (map (cut string-byte-ref k <>)
	    (iota (string-length k)))))
#
gosh> ("c3" "bf" "c3")
#
そもそもlist->stringじゃだめっぽい
#
util.digestってなにー
2010/03/04 02:33:01 UTCnaoya_t
#
(use util.digest)
#
(digest-hexify (sha1-digest-string "abcdefg"))
#
で "2fb5e13419fc89246865e7a324f476ec624e8740" が得られるやつ
2010/03/04 02:39:17 UTCえんどう
#
(map (cut string-byte-ref (list->string '(#\xff #\xff #\xff)) <>)
'(0 1 2))
#
(195 191 195)
#
string-byte-refがだめなのか/
#
?
2010/03/04 02:41:14 UTCnaoya_t
#
(list->string '(#\xff #\xff #\xff)) が (195 191 195 191 195 191) のような文字列になるから
2010/03/04 02:41:20 UTCshiro
#
byte-refはバイト (0-255の整数) を返すもの。
2010/03/04 02:41:42 UTCnaoya_t
#
"ÿÿÿ"(しゃとんで出るかな)
2010/03/04 02:41:50 UTCshiro
#
不完全文字列がstring->listできないのは、「文字」という単位deno
#
単位での分割ができないため。
#
そんでえんどうさんが欲しいものは何?
2010/03/04 02:47:02 UTCえんどう
#
digest値のバイト列のリストです
#
いやちがう。digest値の整数リストだ
#
整数リストをdigestして整数リストを得たい
#
整数リストの要素は0-255の整数
2010/03/04 02:52:02 UTCnaoya_t
#
(u8vector->string #u8(255 255 255))なら大丈夫?
2010/03/04 03:07:28 UTCえんどう
#
おお、これだ>u8vector->string