Memoize |
BasicWerk
EC Support
Technique
Facebook
|
20140611161945_factor_SYMBOLS |
factor_SYMBOLS
昨日書いた、 http://basicwerk.com/memoize/20140610123934_factor_regexp.html 最初にマッチした箇所だけを置換するワード。
rot が繰り返し出てきて何だかよくわからないので、後から修正するのが大変だ。
SYMBOL を使って書き直してみた。 一つ目の re-replace-first% が旧バージョン。 ! Copyright (C) 2014 Shin Nakamura. ! See http://factorcode.org/license.txn for BSD license. USING: kernel locals math regexp regexp.private sequences.private accessors sequences lexer parser words words.symbol namespaces ; IN: my-regexp ! OLD : re-replace-first% ( string regexp replacement -- result ) rot rot over rot rot first-match dup tuple? [ dup from>> over to>> rot drop rot replace-slice ] [ drop nip ] if ; ! NEW : re-replace-first ( string regexp replacement -- result ) SYMBOLS: str re rep ; rep set re set str set str get re get first-match dup tuple? [ rep get swap dup from>> swap to>> str get replace-slice ] [ drop str get ] if ;
|
© Shin Nakamura/BasicWerk 2014 |