<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>what a beautiful day..</title>
	<atom:link href="http://wcho.pe.kr/feed/" rel="self" type="application/rss+xml" />
	<link>http://wcho.pe.kr</link>
	<description></description>
	<lastBuildDate>Fri, 16 Jul 2010 02:26:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>이사했다.</title>
		<link>http://wcho.pe.kr/2010/07/16/%ec%9d%b4%ec%82%ac%ed%96%88%eb%8b%a4/</link>
		<comments>http://wcho.pe.kr/2010/07/16/%ec%9d%b4%ec%82%ac%ed%96%88%eb%8b%a4/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 02:26:35 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<guid isPermaLink="false">http://wcho.pe.kr/?p=287</guid>
		<description><![CDATA[사택 옮긴 지 몇 달 안됐는데 또 다시 이사했다. 소프트랑 완전히 분리되면서 사택도 분리됐다. 사택 사람들이랑 꽤 친해졌고 갈은 방 쓰는 동윤이랑도 잘 지내던 차라 좀 아쉬웠지만 어제 처음 새 사택 가서 짐 정리하고 보니 방이 꽤 아늑하고 맘에 든다. 침대도 있고&#8230; 룸메이트도 착해보이고 괜찮은 것 같다. 28층이라 왔다갔다 하기가 좀 불편하긴 하지만 창문도 열리고 [...]]]></description>
			<content:encoded><![CDATA[<p>사택 옮긴 지 몇 달 안됐는데 또 다시 이사했다. 소프트랑 완전히 분리되면서 사택도 분리됐다. 사택 사람들이랑 꽤 친해졌고 갈은 방 쓰는 동윤이랑도 잘 지내던 차라 좀 아쉬웠지만 어제 처음 새 사택 가서 짐 정리하고 보니 방이 꽤 아늑하고 맘에 든다. 침대도 있고&#8230; 룸메이트도 착해보이고 괜찮은 것 같다. 28층이라 왔다갔다 하기가 좀 불편하긴 하지만 창문도 열리고 나름 소음도 적고 해서 괜찮은 것 같다. 처음에 엘리베이터가 하나밖에 없어서 매우 놀랐는데 알고 보니 계단 중간으로 통하는 작은 엘리베이터가 하나 더 있었다. 매우 신기한 구조다.</p>
]]></content:encoded>
			<wfw:commentRss>http://wcho.pe.kr/2010/07/16/%ec%9d%b4%ec%82%ac%ed%96%88%eb%8b%a4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>늦은 부음(訃音)</title>
		<link>http://wcho.pe.kr/2010/05/21/%eb%8a%a6%ec%9d%80-%eb%b6%80%ec%9d%8c%e8%a8%83%e9%9f%b3/</link>
		<comments>http://wcho.pe.kr/2010/05/21/%eb%8a%a6%ec%9d%80-%eb%b6%80%ec%9d%8c%e8%a8%83%e9%9f%b3/#comments</comments>
		<pubDate>Fri, 21 May 2010 13:04:49 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<guid isPermaLink="false">http://wcho.pe.kr/?p=283</guid>
		<description><![CDATA[오늘 인터넷으로 야구를 보고 있었는데 간만에 한 친구가 메신저로 말을 걸어왔다. 그런데 느닷없이 같은 동아리 1년 후배였던 녀석이 과로로 죽었다는 것이다. 그것도 몇 주 전에.. 그 녀석 홈페이지를 찾아가 보니 어느 순간 이후로는 글이 끊겨 있고 마지막 글에는 다른 사람들이 녀석을 떠나 보내는 글귀만 가득했다. 그 녀석은 나와 나이는 같지만 학교를 1년 늦게 들어왔고 내가 [...]]]></description>
			<content:encoded><![CDATA[<p>오늘 인터넷으로 야구를 보고 있었는데 간만에 한 친구가 메신저로 말을 걸어왔다. 그런데 느닷없이 같은 동아리 1년 후배였던 녀석이 과로로 죽었다는 것이다. 그것도 몇 주 전에.. 그 녀석 홈페이지를 찾아가 보니 어느 순간 이후로는 글이 끊겨 있고 마지막 글에는 다른 사람들이 녀석을 떠나 보내는 글귀만 가득했다.</p>
<p>그 녀석은 나와 나이는 같지만 학교를 1년 늦게 들어왔고 내가 학부 중간에 병특을 가느라 함께 동아리 생활을 했던 날은 1년 남짓 되었던 것 같다. 처음 동아리에 들어왔을 때부터 말도 잘하고 뭔가 똘똘해보이면서도 프라모델이나 코스프레 따위에 심취해 있던 독특한 친구였다. 또, 항상 자신감에 차 있었던 것 같고 말도 많은 외향적인 녀석이었지만 술은 잘 못했던 것 같다. 그래서인지 나도 그 녀석도 동아리 방에서 거의 살다시피 했지만 선배들과 친했던 만큼은 친해지지 못했다. 지금 돌이켜 생각해 보면 같은 나이지만 선후배 관계였다는 게 조금 걸림돌이었던 것 같기도 하다. 그래도 함께 동아리방에서 라그나로크 게임을 미친듯이 하고 몇 시간씩 보드게임도 하고 밤이면 야식도 자주 시켜먹고 했던 게 생생하게 기억난다.</p>
<p>그리고 나서 병특을 다녀오는 동안 동아리가 유지되지 못해서 학교로 돌아온 이후로는 별로 만나지 못했지만 그래도 종종 지나가다 마주치면 사는 얘기는 조금씩 하곤 했다. 그렇게 내가 석사 마칠 때 까지는 종종 봤었다. 언제나 msn에 접속해 있었지만 내가 딱히 메신저든 전화든 사람들한테 연락하는 성격이 아니라 그냥 박사과정 잘 하고 있구나 라고만 생각했는데 이런 소식을 갑자기 접하니 마음이 심란하다. 더더욱 안타까운 것은 결혼을 약속한 사람이 있었고 결혼식을 불과 몇 주 앞둔 상태였다고 한다. 혹시 녀석의 다른 흔적이 있을까 싶어 검색해보니 그 여자분의 블로그가 검색됐다. 매일 슬픔을 참으며 써내려간 최근 글들을 읽어보니 내가 알고 있었던 녀석의 모습은 정말 빙산의 일각이었고 전혀 알지 못했던 모습들을 많이 알게 되었다. 너무나 안타깝다. 고인의 명복을 빈다.</p>
]]></content:encoded>
			<wfw:commentRss>http://wcho.pe.kr/2010/05/21/%eb%8a%a6%ec%9d%80-%eb%b6%80%ec%9d%8c%e8%a8%83%e9%9f%b3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Imagine</title>
		<link>http://wcho.pe.kr/2010/04/04/imagine/</link>
		<comments>http://wcho.pe.kr/2010/04/04/imagine/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 04:09:46 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<guid isPermaLink="false">http://wcho.pe.kr/?p=281</guid>
		<description><![CDATA[평소에 정말 명곡 중 하나로 생각하고 있던 존레논의 Imagine의 저작권을 오노요코씨가 국제앰네스티에 기증했다는 얘기를 읽었다. 마침 내가 읽고 있는 리차드 도킨스의 &#8216;The God Delusion&#8217;에서도 관련한 얘기가 머릿말 부분에 나오는데 인간 그 자체를 가장 중요하게 노래한 &#8216;Imagine&#8217;의 가사 중 &#8216;and no religion too&#8217; 부분이 어떤 곳에서는 삭제되거나 심지어는 &#8216;and one religion too&#8217;로 바뀌어 불리기도 한다는 것이다. [...]]]></description>
			<content:encoded><![CDATA[<p>평소에 정말 명곡 중 하나로 생각하고 있던 존레논의 Imagine의 저작권을 오노요코씨가 국제앰네스티에 기증했다는 <a href="http://www.amnestydiary.net/409">얘기</a>를 읽었다. 마침 내가 읽고 있는 리차드 도킨스의 &#8216;The God Delusion&#8217;에서도 관련한 얘기가 머릿말 부분에 나오는데 인간 그 자체를 가장 중요하게 노래한 &#8216;Imagine&#8217;의 가사 중 &#8216;and no religion too&#8217; 부분이 어떤 곳에서는 삭제되거나 심지어는 &#8216;and one religion too&#8217;로 바뀌어 불리기도 한다는 것이다. 참으로 어처구니 없는 일이 아닐 수 없다. ㅎㅎ</p>
]]></content:encoded>
			<wfw:commentRss>http://wcho.pe.kr/2010/04/04/imagine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>기프트,보이스,파워 &#8211; 어슐러 르귄</title>
		<link>http://wcho.pe.kr/2010/04/04/%ea%b8%b0%ed%94%84%ed%8a%b8%eb%b3%b4%ec%9d%b4%ec%8a%a4%ed%8c%8c%ec%9b%8c-%ec%96%b4%ec%8a%90%eb%9f%ac-%eb%a5%b4%ea%b7%84/</link>
		<comments>http://wcho.pe.kr/2010/04/04/%ea%b8%b0%ed%94%84%ed%8a%b8%eb%b3%b4%ec%9d%b4%ec%8a%a4%ed%8c%8c%ec%9b%8c-%ec%96%b4%ec%8a%90%eb%9f%ac-%eb%a5%b4%ea%b7%84/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 03:00:05 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<guid isPermaLink="false">http://wcho.pe.kr/?p=125</guid>
		<description><![CDATA[인터넷 서점을 어슬렁거리다가, 내가 좋아하는 두 작가 중 한 명인 어슐러 르귄의 책을 발견하고 닥본사(닥치고 원본 사수)했던 세 권의 시리즈다. 청소년용 소설로 분류되던데 분류 기준이 주인공의 성장을 그린 것인지 아닌지로 나누어진다고 하니 굳이 청소년용 딱지를 붙이는 것은 불필요하다고 생각한다. 하지만 표지 그림은 확실히 어린애들을 타겟으로 한듯 멋있고 예쁜 캐릭터가 그려져 있다. 고생하고 다니는 주인공들의 모습이라고 [...]]]></description>
			<content:encoded><![CDATA[<p>인터넷 서점을 어슬렁거리다가, 내가 좋아하는 두 작가 중 한 명인 어슐러 르귄의 책을 발견하고 닥본사(닥치고 원본 사수)했던 세 권의 시리즈다. 청소년용 소설로 분류되던데 분류 기준이 주인공의 성장을 그린 것인지 아닌지로 나누어진다고 하니 굳이 청소년용 딱지를 붙이는 것은 불필요하다고 생각한다. 하지만 표지 그림은 확실히 어린애들을 타겟으로 한듯 멋있고 예쁜 캐릭터가 그려져 있다. 고생하고 다니는 주인공들의 모습이라고 보기에는좀.. :)</p>
<p>그렇지 않아도 좋아하는 작가의 책인데다, 번역판이고, 결정적으로 매우 재밌어서 금방 금방 읽을 수 있었다. 다 읽은지는 한참 됐는데 <a href="http://www.amnestydiary.net/407">어느 블로그</a>에서 리뷰해 놓은 것을 보니 다시 기억이 났다. 저렇게 분석해놓은 글을 보니 나는 책을 대충대충만 읽었던 것 같다는 생각이 든다. 그렇다고 아예 생각 없이 읽었던 건 아니지만.. ㅎㅎ</p>
<p>내가 가장 좋았던 것은 결국에는 상식과 지식 그리고 자유가 있는 대학도시가 최종 도착점이라는 것이다. 그 도시는 다른 도시들보다 훨씬 다양한 사람들이 모여 있어서 번화하고 발전된 모습으로 그려졌던 걸로 기억하는데, 그러한 도시가 가장 이상적인 모습이라는데서 공감을 한다. 이 것은 르귄의 헤인시리즈의 헤인 공동체(?)도 결국은 비슷한 이상향을 그리고 있는 것 같다.(라고 하면 좀 비약인가 :)</p>
]]></content:encoded>
			<wfw:commentRss>http://wcho.pe.kr/2010/04/04/%ea%b8%b0%ed%94%84%ed%8a%b8%eb%b3%b4%ec%9d%b4%ec%8a%a4%ed%8c%8c%ec%9b%8c-%ec%96%b4%ec%8a%90%eb%9f%ac-%eb%a5%b4%ea%b7%84/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>원서 읽기 패턴</title>
		<link>http://wcho.pe.kr/2010/03/30/%ec%9b%90%ec%84%9c-%ec%9d%bd%ea%b8%b0-%ed%8c%a8%ed%84%b4/</link>
		<comments>http://wcho.pe.kr/2010/03/30/%ec%9b%90%ec%84%9c-%ec%9d%bd%ea%b8%b0-%ed%8c%a8%ed%84%b4/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 00:14:22 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<guid isPermaLink="false">http://wcho.pe.kr/?p=269</guid>
		<description><![CDATA[얼마 전에 &#8216;House of Many Ways&#8216; 읽기를 마치고 꽤 전에 사두었던 &#8216;The God Delusion&#8217;을 읽기 시작했다. 근데 조금 읽다보니 내가 읽은 원서들이 거의 다 영국 작가들 책이라는 걸 깨닫게 되었다. Diana Wynne Jones(하울 시리즈), Richard Dawkins(The God Delusion), Charles Darwin(종의 기원을 좀 읽다 멈추긴 했지만), C.S.Lewis(나니아 연대기), Lewis Carroll(이상한 나라의 앨리스) 영국사람이 아닌 작가로는 Ursula [...]]]></description>
			<content:encoded><![CDATA[<p>얼마 전에 &#8216;<a href="http://wcho.pe.kr/2010/03/09/house-of-many-ways/">House of Many Ways</a>&#8216; 읽기를 마치고 꽤 전에 사두었던 &#8216;The God Delusion&#8217;을 읽기 시작했다. 근데 조금 읽다보니 내가 읽은 원서들이 거의 다 영국 작가들 책이라는 걸 깨닫게 되었다.</p>
<p>Diana Wynne Jones(하울 시리즈), Richard Dawkins(The God Delusion), Charles Darwin(종의 기원을 좀 읽다 멈추긴 했지만), C.S.Lewis(나니아 연대기), Lewis Carroll(이상한 나라의 앨리스)</p>
<p>영국사람이 아닌 작가로는 Ursula K. Le Guin (어스시 시리즈, 헤인 시리즈) 밖에 없는 것 같다. 돌이켜보면 르귄의 책이 더 읽기 쉬웠던 것 같고 하울 시리즈나 나니아 연대기는 별로 어려운 내용은 아니지만 쓸데없이 어려운(내가 모르는 :) 단어가 너무 많이 나왔던 것 같기도 하다. 물론 다윈과 도킨스 책은 워낙 전문적인 책이고 고급 독자들을 위한 거고, 앨리스는 그 자체로 꼬여있는 내용이라 어쩔 수 없긴 했지만 말이다.</p>
]]></content:encoded>
			<wfw:commentRss>http://wcho.pe.kr/2010/03/30/%ec%9b%90%ec%84%9c-%ec%9d%bd%ea%b8%b0-%ed%8c%a8%ed%84%b4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>House of Many Ways</title>
		<link>http://wcho.pe.kr/2010/03/09/house-of-many-ways/</link>
		<comments>http://wcho.pe.kr/2010/03/09/house-of-many-ways/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 07:27:53 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<guid isPermaLink="false">http://wcho.pe.kr/2010/03/09/house-of-many-ways/</guid>
		<description><![CDATA[Howl&#8217;s Moving Castle, Castle in the Air 을 잇는 Diana Wynne Jones의 2008년에 나온 (비교적) 최근작 House of Many Ways을 다 읽었다. 역시나 앞의 시리즈들과 마찬가지로 전체적으로 유쾌하고 긴장감이 유지되면서 적당한 반전이 적절하게 갖춰진 모습이었다. 여기서 나오는 악당이 이전 시리즈들의 악당보다 훨씬 잔혹한 모습이라서 더욱 긴장이 컸던 것 같다. 책을 읽는 것에서 큰 행복감을 느끼는 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wcho.pe.kr/2009/05/03/castle-in-the-air/">Howl&#8217;s Moving Castle</a>, <a href="http://wcho.pe.kr/2009/05/03/castle-in-the-air/">Castle in the Air</a> 을 잇는 Diana Wynne Jones의 2008년에 나온 (비교적) 최근작 House of Many Ways을 다 읽었다.</p>
<p>역시나 앞의 시리즈들과 마찬가지로 전체적으로 유쾌하고 긴장감이 유지되면서 적당한 반전이 적절하게 갖춰진 모습이었다.  여기서 나오는 악당이 이전 시리즈들의 악당보다 훨씬 잔혹한 모습이라서 더욱 긴장이 컸던 것 같다. 책을 읽는 것에서 큰 행복감을 느끼는 주인공 소녀 차메인도 매우 독특한 성격을 가지고 있으며 주변에서 일어나는 여러가지 사건때문에 불평도 많지만 한편으로는 사람들을 도와주는데 전혀 망설임이 없어서 정말 마음에 드는 캐릭터이다. 중반 즈음 다시 모습을 드러내어 차메인에게 여러 도움을 주는 하울, 소피, 캘시퍼 역시 무척 반가운 얼굴들이다.</p>
<p>다음 시리즈가 또 빨리 나오기를 바라지만 이 Castle 시리즈는 18년만에 나온 책이고 게다가 2009년 여름에 폐암 수술을 받기도 해서 다음 시리즈가 금방 나올 것을 기대하기는 어려울 것 같다. T.T</p>
]]></content:encoded>
			<wfw:commentRss>http://wcho.pe.kr/2010/03/09/house-of-many-ways/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>좋은 Emacs 및 Elisp tutorial</title>
		<link>http://wcho.pe.kr/2010/02/03/%ec%a2%8b%ec%9d%80-emacs-%eb%b0%8f-elisp-tutorial/</link>
		<comments>http://wcho.pe.kr/2010/02/03/%ec%a2%8b%ec%9d%80-emacs-%eb%b0%8f-elisp-tutorial/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 05:30:28 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<guid isPermaLink="false">http://wcho.pe.kr/?p=260</guid>
		<description><![CDATA[emacs에 관한 좋은 사이트가 있어서 링크해둔다. http://xahlee.org/emacs/emacs.html http://xahlee.org/emacs/elisp.html]]></description>
			<content:encoded><![CDATA[<p>emacs에 관한 좋은  사이트가 있어서 링크해둔다.</p>
<p><a title="Emacs Tutorial" href="http://xahlee.org/emacs/emacs.html">http://xahlee.org/emacs/emacs.html</a></p>
<p><a title="Elisp Tutorial" href="http://xahlee.org/emacs/elisp.html">http://xahlee.org/emacs/elisp.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wcho.pe.kr/2010/02/03/%ec%a2%8b%ec%9d%80-emacs-%eb%b0%8f-elisp-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux tcp keep alive</title>
		<link>http://wcho.pe.kr/2009/12/09/linux-tcp-keep-alive/</link>
		<comments>http://wcho.pe.kr/2009/12/09/linux-tcp-keep-alive/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 11:32:04 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<guid isPermaLink="false">http://wcho.pe.kr/?p=257</guid>
		<description><![CDATA[ssh는 keepalive 기능이 들어있지만 telnet에는 없어서 무척 짜증이 났는데 tcp의 keep alive를 이용하면 된다. http://www.dslreports.com/faq/7792 The TCP KeepAlive value is stored in the &#8220;proc&#8221; filesystem (actually a virtual filesystem maintained by the kernel) under this path: /proc/sys/net/ipv4/tcp_keepalive_time The default just happens to be 7200 seconds (same as the BEFSR41 timeout). To defeat NAT it must [...]]]></description>
			<content:encoded><![CDATA[<p>ssh는 keepalive 기능이 들어있지만 telnet에는 없어서 무척 짜증이 났는데 tcp의 keep alive를 이용하면 된다.</p>
<p><a href="http://www.dslreports.com/faq/7792">http://www.dslreports.com/faq/7792</a></p>
<blockquote><p>The TCP KeepAlive value is stored in the &#8220;proc&#8221; filesystem (actually a virtual filesystem maintained by the kernel) under this path:</p>
<p>/proc/sys/net/ipv4/tcp_keepalive_time</p>
<p>The default just happens to be 7200 seconds (same as the BEFSR41 timeout). To defeat NAT it must be something smaller than that, like 1800. Setting it to a really small value like 60 is frowned upon as a bad network administration practice, especially if you are running a server.</p>
<p>So to change it all you need to do is this:</p>
<p>echo &#8220;1800&#8243; &gt; /proc/sys/net/ipv4/tcp_keepalive_time</p>
<p>You have to put this in a startup file like &#8220;rc.local&#8221; to make it permanent.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://wcho.pe.kr/2009/12/09/linux-tcp-keep-alive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beautiful Code  Programming Praxis</title>
		<link>http://wcho.pe.kr/2009/09/14/beautiful-code-%c2%ab-programming-praxis/</link>
		<comments>http://wcho.pe.kr/2009/09/14/beautiful-code-%c2%ab-programming-praxis/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 03:04:48 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<guid isPermaLink="false">http://wcho.pe.kr/?p=250</guid>
		<description><![CDATA[Beautiful Code Programming Praxis. let match_re re text = &#160;let len = String.length in &#160;let get = String.get in &#160;let remain str o = String.sub str o &#40;&#40;len str&#41;-o&#41; in &#160;let next_ch ch o_re = &#160; if len re &#62; &#40;o_re+1&#41; then &#160; &#160;if get re &#40;o_re+1&#41; = ch then true &#160; &#160;else false &#160; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://programmingpraxis.com/2009/09/11/beautiful-code/">Beautiful Code  Programming Praxis</a>.</p>
<div class="geshi ocaml">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">let</span> match_re re text <span class="sy0">=</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">let</span> len <span class="sy0">=</span> <span class="kw2">String</span><span class="sy0">.</span><span class="me1">length</span> <span class="kw1">in</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">let</span> get <span class="sy0">=</span> <span class="kw2">String</span><span class="sy0">.</span><span class="me1">get</span> <span class="kw1">in</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">let</span> remain str o <span class="sy0">=</span> <span class="kw2">String</span><span class="sy0">.</span><span class="me1">sub</span> str o <span class="br0">&#40;</span><span class="br0">&#40;</span>len str<span class="br0">&#41;</span><span class="sy0">-</span>o<span class="br0">&#41;</span> <span class="kw1">in</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">let</span> next_ch ch o_re <span class="sy0">=</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span> len re <span class="sy0">&gt;</span> <span class="br0">&#40;</span>o_re<span class="nu0">+1</span><span class="br0">&#41;</span> <span class="kw1">then</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">if</span> get re <span class="br0">&#40;</span>o_re<span class="nu0">+1</span><span class="br0">&#41;</span> <span class="sy0">=</span> ch <span class="kw1">then</span> <span class="kw1">true</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">else</span> <span class="kw1">false</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">else</span> <span class="kw1">false</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">in</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">let</span> curr_ch ch o_re <span class="sy0">=</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span> len re <span class="sy0">&gt;</span> o_re <span class="kw1">then</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">if</span> get re o_re <span class="sy0">=</span> ch <span class="kw1">then</span> <span class="kw1">true</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">else</span> <span class="kw1">false</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">else</span> <span class="kw1">false</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">in</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">let</span> <span class="kw1">rec</span> match_re_star c o_re o_text <span class="sy0">=</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="coMULTI">(* Printf.printf &quot;match_re_star c:%c re:%s text:%s\n&quot; c (remain re o_re) (remain text o_text); *)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span> match_re_here o_re o_text <span class="kw1">then</span> <span class="kw1">true</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">else</span> <span class="kw1">if</span> len text <span class="sy0">!=</span> o_text <span class="sy0">&amp;&amp;</span> <span class="br0">&#40;</span><span class="br0">&#40;</span>get text o_text<span class="br0">&#41;</span> <span class="sy0">=</span> c <span class="sy0">||</span> c <span class="sy0">=</span> <span class="sy0">&#39;.&#39;</span><span class="br0">&#41;</span> <span class="kw1">then</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;match_re_star c o_re <span class="br0">&#40;</span>o_text<span class="nu0">+1</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">false</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">and</span> match_re_here o_re o_text <span class="sy0">=</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="coMULTI">(* Printf.printf &quot;match_re_here re:%s text:%s\n&quot; (remain re o_re) (remain text o_text); *)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span> len re <span class="sy0">=</span> o_re <span class="kw1">then</span> <span class="kw1">true</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">else</span> <span class="kw1">if</span> next_ch <span class="sy0">&#39;*&#39;</span> o_re <span class="kw1">then</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;match_re_star <span class="br0">&#40;</span>get re o_re<span class="br0">&#41;</span> <span class="br0">&#40;</span>o_re<span class="nu0">+2</span><span class="br0">&#41;</span> o_text</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">else</span> <span class="kw1">if</span> get re o_re <span class="sy0">=</span> <span class="sy0">&#39;</span>$<span class="sy0">&#39;</span> <span class="sy0">&amp;&amp;</span> len re <span class="sy0">=</span> o_re<span class="nu0">+1</span> <span class="kw1">then</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;len text <span class="sy0">=</span> o_text</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">else</span> <span class="kw1">if</span> len text <span class="sy0">!=</span> o_text <span class="sy0">&amp;&amp;</span> <span class="br0">&#40;</span>get re o_re <span class="sy0">=</span> <span class="sy0">&#39;.&#39;</span> <span class="sy0">||</span> get re o_re <span class="sy0">=</span> get text o_text<span class="br0">&#41;</span> <span class="kw1">then</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;match_re_here <span class="br0">&#40;</span>o_re<span class="nu0">+1</span><span class="br0">&#41;</span> <span class="br0">&#40;</span>o_text<span class="nu0">+1</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">false</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">and</span> match_re_main o_re o_text <span class="sy0">=</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="coMULTI">(* Printf.printf &quot;match_re_main re:%s text:%s\n&quot; (remain re o_re) (remain text o_text); *)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span> match_re_here o_re o_text <span class="kw1">then</span> <span class="kw1">true</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">else</span> <span class="kw1">if</span> len text <span class="sy0">=</span> o_text <span class="kw1">then</span> <span class="kw1">false</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">else</span> match_re_main o_re <span class="br0">&#40;</span>o_text<span class="nu0">+1</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">in</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> curr_ch <span class="sy0">&#39;^&#39;</span> <span class="nu0">0</span> <span class="kw1">then</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; match_re_here <span class="nu0">1</span> <span class="nu0">0</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">else</span> match_re_main <span class="nu0">0</span> <span class="nu0">0</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">let</span> match_re_test <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">=</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;a&quot;</span> <span class="st0">&quot;a&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;a&quot;</span> <span class="st0">&quot;b&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;a&quot;</span> <span class="st0">&quot;ab&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;a&quot;</span> <span class="st0">&quot;ba&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;ab&quot;</span> <span class="st0">&quot;ab&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;ab&quot;</span> <span class="st0">&quot;ba&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;ab&quot;</span> <span class="st0">&quot;xab&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;ab&quot;</span> <span class="st0">&quot;aab&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;a.c&quot;</span> <span class="st0">&quot;ac&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;a.c&quot;</span> <span class="st0">&quot;abc&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;a.c&quot;</span> <span class="st0">&quot;xac&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;a.c&quot;</span> <span class="st0">&quot;xabcx&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;^ab&quot;</span> <span class="st0">&quot;ab&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;^ab&quot;</span> <span class="st0">&quot;ba&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;^ab&quot;</span> <span class="st0">&quot;aab&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;^ab&quot;</span> <span class="st0">&quot;abc&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;ab$&quot;</span> <span class="st0">&quot;ab&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;ab$&quot;</span> <span class="st0">&quot;ba&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;ab$&quot;</span> <span class="st0">&quot;aab&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;ab$&quot;</span> <span class="st0">&quot;abc&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;^ab$&quot;</span> <span class="st0">&quot;ab&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;^ab$&quot;</span> <span class="st0">&quot;ba&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;^ab$&quot;</span> <span class="st0">&quot;abc&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;^ab$&quot;</span> <span class="st0">&quot;aba&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;a.*c&quot;</span> <span class="st0">&quot;ac&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;a.*c&quot;</span> <span class="st0">&quot;abc&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;a.*c&quot;</span> <span class="st0">&quot;abbc&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;a.*c&quot;</span> <span class="st0">&quot;cbba&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;aa*&quot;</span> <span class="st0">&quot;x&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;aa*&quot;</span> <span class="st0">&quot;a&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;aa*&quot;</span> <span class="st0">&quot;aa&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;aa*&quot;</span> <span class="st0">&quot;ba&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;a*a*a&quot;</span> <span class="st0">&quot;a&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;a*a*a&quot;</span> <span class="st0">&quot;aaa&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; assert <span class="br0">&#40;</span><span class="br0">&#40;</span>match_re <span class="st0">&quot;a*a*a&quot;</span> <span class="st0">&quot;xxxxx&quot;</span><span class="br0">&#41;</span><span class="sy0">=</span><span class="kw1">false</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">let</span> _ <span class="sy0">=</span> match_re_test <span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="coMULTI">(* no news is good news *)</span></div>
</li>
</ol>
</div>
<p>OCaml translation of the regex match code in C.<br />
I tried to beautify the code but it looks quite dirty due to the string operations. It will become more beautiful if we use a list of characters instead of native string as Scheme does in the suggested solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://wcho.pe.kr/2009/09/14/beautiful-code-%c2%ab-programming-praxis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Insert increasing sequence of numbers in Emacs</title>
		<link>http://wcho.pe.kr/2009/08/26/insert-increasing-sequence-of-numbers-in-emacs/</link>
		<comments>http://wcho.pe.kr/2009/08/26/insert-increasing-sequence-of-numbers-in-emacs/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 08:34:02 +0000</pubDate>
		<dc:creator></dc:creator>
		
		<guid isPermaLink="false">http://wcho.pe.kr/?p=222</guid>
		<description><![CDATA[When coding in Emacs, I needed to insert an increasing sequence of integers as follows. &#160;pdriver_object-&#62;MajorFunction&#91;0&#93; = NULL; &#160;pdriver_object-&#62;MajorFunction&#91;1&#93; = NULL; &#160;pdriver_object-&#62;MajorFunction&#91;2&#93; = NULL; &#160;pdriver_object-&#62;MajorFunction&#91;3&#93; = NULL; &#160;pdriver_object-&#62;MajorFunction&#91;4&#93; = NULL; &#160;pdriver_object-&#62;MajorFunction&#91;5&#93; = NULL; &#8230; It&#8217;s easy to copy and paste the lines. Inserting a sequence of integers was the problem and I wrote a small [...]]]></description>
			<content:encoded><![CDATA[<p>When coding in Emacs, I needed to insert an increasing sequence of integers as follows.</p>
<div class="geshi no c">
<ol>
<li class="li1">
<div class="de1">&nbsp;pdriver_object<span class="sy0">-</span>&gt;MajorFunction<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw2">NULL</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;pdriver_object<span class="sy0">-</span>&gt;MajorFunction<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw2">NULL</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;pdriver_object<span class="sy0">-</span>&gt;MajorFunction<span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw2">NULL</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;pdriver_object<span class="sy0">-</span>&gt;MajorFunction<span class="br0">&#91;</span><span class="nu0">3</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw2">NULL</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;pdriver_object<span class="sy0">-</span>&gt;MajorFunction<span class="br0">&#91;</span><span class="nu0">4</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw2">NULL</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;pdriver_object<span class="sy0">-</span>&gt;MajorFunction<span class="br0">&#91;</span><span class="nu0">5</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="kw2">NULL</span>;</div>
</li>
<li class="li1">
<div class="de1">&#8230;</div>
</li>
</ol>
</div>
<p>It&#8217;s easy to copy and paste the lines. Inserting a sequence of integers was the problem and I wrote a small Emacs Lisp code for that.</p>
<div class="geshi no lisp">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#40;</span><span class="kw1">defun</span> f <span class="br0">&#40;</span>n<span class="br0">&#41;</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#40;</span><span class="kw1">let</span> <span class="br0">&#40;</span><span class="br0">&#40;</span>ns <span class="br0">&#40;</span>number<span class="sy0">-</span>to<span class="sy0">-</span>string n<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#40;</span><span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">&lt;=</span> n <span class="nu0">30</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#40;</span><span class="kw1">progn</span> </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span>insert ns<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span>next<span class="sy0">-</span>line<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span>backward<span class="sy0">-</span>char <span class="br0">&#40;</span><span class="kw1">length</span> ns<span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;<span class="br0">&#40;</span>f <span class="br0">&#40;</span><span class="nu0">1</span><span class="sy0">+</span> n<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#40;</span>f <span class="nu0">30</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>This was my first practical elisp code. It required more time than typing in numbers, it&#8217;s very satisfactory. :)</p>
]]></content:encoded>
			<wfw:commentRss>http://wcho.pe.kr/2009/08/26/insert-increasing-sequence-of-numbers-in-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
