Showing posts with label LISP. Show all posts
Showing posts with label LISP. Show all posts

Tuesday, January 3, 2012

LIST

อันดับประเทศไทย ณ ๑๑ กพ ๒๕๕๕
รายชื่อ รายการ บัญชีรายชื่อ บัญชีชื่อ ขอบ รีม บานแผนก โพย

ข้างบนนั้นคือคำไทย ที่ เขา ให้ความหมายว่าสอดคล้อง ตรง ใกล้เคียงกับคำฝรั่งว่า list

อันดับประเทศไทย ๕ มค ๒๕๕๕
มะฃาม ใคร่ขอเพิ่มไปอีก ๑ คำคือ รายอัน ส่วน คำว่า อัน จะหมายถึงอะไรนั้นขึ้นอยู่กับบริบท (น้านนนน) ของเรื่องราวที่เกี่ยวข้อง ตัวอย่างเช่น เรื่องราวของหนังสือ ก็อาจจะหมายถึง บท หัวข้อ ย่อหน้า ประโยค  ตอน  เล่ม ชุด  หรืออาจจะหมายถึง รายนามคณะทำงานจัดทำ ... อะไรสักอย่าง ซึ่งเป็นแต่ ชื่อ-นามสกุล ของคนทั้งหลายที่เข้าร่วมทำงาน แต่อันที่จริงแล้วเพียงไปนั่งฟัง และคอยยกมือเวลาเขา ขอความเห็นอะไรสักอย่าง ก็เป็นได้ โดยรวมๆคือ มีหลายอัน ถึงได้เรียกว่า รายอัน   หรือ ถ้าเป็นเรื่องราวของ model ก็อาจจะเป็นอย่างที่พี่ม้าเธอพูดว่า เรื่องของ เสื้อ ผ้า หน้า ผม ... ... เหล่านี้ ก็ได้

list รายอัน

ในเมื่อ รายอัน คือ หลายๆอันมาประกอบกัน ดังนั้น ก็ต้องมี ภาขนะ สำหรับ หลายอันนั้นอยู่ด้วยกัน แล เมื่อพูดถึง อันใด อันหนึ่ง ก็มักจะหมายเอาว่า อันนั้น ลุ่นๆ อันนั้นล้วนๆ ไม่มีภาชนะอะไรมาห่อหุ้ม ให้เหมือนกับกรณี รายอัน

ถ้าจะเขียนกันแบบพอให้ได้ภาพพจน์ ก็คงเขียนแบบนี้กระมัง

(list  อันหนึ่ง อันสอง อันสาม อันสี่ อันห้า อันหก อันแปด อันเจ็ด อันสิบ อันเก้า)

ประมาณนี้ คือให้รู้ว่า นี่คือ list น่ะ ที่อยู่ในวงเล็บนี่แหละ เปรียบเสมือน ภาชนะให้ รายอัน อยู่ ดั่งนี้  (อย่างงงครับ อย่างงง อันแปด มันแซง อันเจ็ด ขึ้นมา แล้วลาก อันสิบ เพื่อนร่วมรุ่นขึ้นมาอยู่ก่อน อันเก้า ด้วย เข้าใจยังล่ะ)

วันนี้ ท่านจะทำอะไร

(list กิจวัตรประจำวัน ประกอบอาหารสำหรับครอบครัว กินอาหารเช้า ซักผ้า นั่งรถถังไปจ่ายตลาด กินอาหารเที่ยงงนอกบ้าน เตลิดเปิดเปิงไปกับเพื่อนเก่า)

หลายท่าน (อืมม น่าจะเป็น รายท่าน) อาจจะเป็นเช่นนี้ หรืออาจจะแบบนี้

(list กิจวัตรประจำวัน  กินอาหารเช้า อ่านfacebook นั่งรถถังไปจ่ายตลาด เตลิดเปิดเปิงไปกับเพื่อนเก่า (list ตั้งวงตีรัมมี ร้องเพลงคาราโอเก) นั่งแท้กซี่กลับบ้าน)

อันดับประเทศไทย วันนี้
จะเห็นว่า ใน list (รายอัน) สามารถมี list  ได้อีก และในชีวิตประจำวัน ล้วนแต่เป็นเรื่องของ list ทั้งสิ้น ไม่มีเว้น แม้กระทั่งอันดับของประเทศที่ใช้งาน FreeBSD ในรูป

หรือเช่นในกรณีพลังงานปรมาณูในประเทศไทย

(list หน่วยงานกำกับควบคุมดูแลให้ปลอดภัย หน่วยงานส่งเสริมกิจกรรมการใช้พลังงานปรมาณูให้ปลอดภัย หน่วยงานภาคเอกชนดำเนินกิจกรรมนั้นๆ)

ยาวเน้าะ แต่คงจะเยิ่นเย้อยืดยาด ถ้าว่าเราจะเขียนกันไปอย่างนี้เสียทุกครา ก็พอมีทางกำหนดให้สะดวกกันบ้างแหละ อย่าง list สุดท้ายที่ยกมา ก็พอจะเขียนให้ง่ายขึ้น เป็น

'(หน่วยงานกำกับควบคุมดูแลให้ปลอดภัย หน่วยงานส่งเสริมกิจกรรมการใช้พลังงานปรมาณูให้ปลอดภัย หน่วยงานภาคเอกชนดำเนินกิจกรรมนั้นๆ)

ขอให้สังเกตุว่า เราไม่ต้องเขียนคำว่า (list อีกต่อไป แต่เราใช้ '( มาแทน ซึ่ง สามารถกำหนด ต่อไปได้อีก ให้ใช้สัญญลักษณ์ อะไรก็ได้ ขึ้นมา เอ้า ติ้งต่างให้เป็น inan มาแทน ก็กำหนดได้อย่างนี้

(setf   inan   '(หน่วยงานกำกับควบคุมดูแลให้ปลอดภัย หน่วยงานส่งเสริมกิจกรรมการใช้พลังงานปรมาณูให้ปลอดภัย หน่วยงานภาคเอกชนดำเนินกิจกรรมนั้นๆ))

ซึ่งครั้งต่อไป เมื่อเราจะพาดพิง หรือ พูดถึง ๓ หน่วยงานนั้น ก็เพียงแต่เรียกหา inan ก็พอ  หรือถ้าว่า เราอยากทราบว่า inan คืออะไร ก็เพียงแค่

(inan)

ก็ได้คำตอบมา ง้ายยยย ง่าย เน้าะ
จาก รายอัน กลายเป็น inan

มะไฟ บรรจุคำสำคัญ LISP เริ่มจากนี้ไป
ในหน่วยงานทั้ง ๓ ที่เป็นสมาชิกของ inan นั้น เราแทนชื่อยาวๆ ด้วย สัญญลักษณ์ สั้นๆได้ดังนี้

(setf inan '(REB PPA OOF))

โดยที่ REB นั้นหมายถึง หน่วยงานกำกับควบคุมดูแลให้ปลอดภัย (REB ย่อมาจาก REgulatory Body)
PPA หมายถึง หน่วยงานส่งเสริมกิจกรรมการใช้พลังงานปรมาณูให้ปลอดภัย (และ ย่อมาจาก Promotional and Policy Agency) และสุดท้าย
OOF หมายถึง หน่วยงานภาคเอกชนดำเนินกิจกรรมนั้นๆ (ซึ่งย่อมาจาก Operators who Operate nuclear Facilities)

หวังว่า คงไม่ไปกระเทือนใครเข้า แลหากเป็นเช่นนั้น มะไฟ กราบขออภัยไว้ล่วงหน้าไว้ ณ ที่นี้เลย

เป็นเพียง สมมุติ โปรดอย่ายึดมั่น ถือมั่น

Tuesday, October 25, 2011

LISP

LISP เป็นอีกภาษาหนึ่ง ที่จัดการกับ list ได้ดีที่สุด list ที่กล่าวไว้ใน The Art of Computer Programming โดย D.E.Knuth นั้นแหละ

ภาษาคอมพิวเตอร์ทั้งหลายแหล่ มีบ้างได้รับความนิยมในท้องตลาด มีบ้าง ใช้จำเพาะงาน มีบ้างได้รับความนิยม แล้วซบเซาลงไป มีบ้างเพียงใช้ในวงการศึกษาเท่านั้น ... ฯลฯ

คอมพิวเตอร์ หากไม่มี software ที่เขียนด้วยภาษาคอมพิวเตอร์ นั้น ไม่ต่างอะไรเลยกับ โลหะ หรือ จะว่าไป เศษโลหะ นั่นแหละ

ปัญญาชน จึงเล็งเห็นความสำคัญของทั้ง hardware และ software ที่เป็นองค์ประกอบกันขึ้นมา ให้เกิดผลิตภัณฑ์ สำหรับชีวิตประจำวัน ชีวิตประจำวัน ที่ชาวบ้านธรรมดา ได้รับความสะดวกสบาย โดยไม่สามารถทราบได้เลยว่า เกิดจากสติ-ปัญญาของผู้คน

ใน FreeBSD ท่านสามารถทดลองใช้งาน LISP ได้จาก lang/sbcl  และหากจะใช้งานกันจริงๆ ก็ได้ เชิญครับที่ math/xlispstat และใน blog นี้เอง ก็ได้กล่าวถึงไปบ้างแล้ว ในเรื่องของ gnuplot ที่เขียนผิดเป็น gnupot นั่นแหละ

ดวงดาว อีก ๑ ดวง ได้ล่วงไปอีกแล้ว LISP หลังจากที่ C ก็ได้จากไปก่อนหน้านี้ไม่นานนัก

LISP และ AI  ผูกพันกันอย่างยากแยก โดยเห็นได้จากเกมส์หมากรุกฝรั่ง ที่เล่นด้วยคอมพิวเตอร์

สู่สุคติเถิด John McCarthy

Thursday, April 21, 2011

LISP ปวดหัว มึนหัว

(สงสัย)
ลองดูข้อความที่เขียนข้างล่างนี้ ดูทีซิว่า เข้าใจรึเปล่า

(+ 5 4 3 2 1)

ไม่มีอะไร วันนี้มันมึนๆหัว ให้แปลก ดูกับว่ามันเมาค้างซะงั้น ทั้งๆที่ก็ไม่ได้กินเบียร์มานาน และ ก็เลิกแล้วด้วย มันไม่มีเหตุผล

เลยลำบากให้เพื่อนๆ ต้องพลอยปวดหัวไปด้วย แต่ให้ปวดอย่างได้สาระในเรื่องที่พอมีสาระบ้าง
ข้อความสีน้ำเงินนั้น นั่นแหละ list ล่ะครับ มันเป็น ลำดับของอักขระ ที่ล้อมรอบด้วย วงเล็บเปิด วงเล็บปิด อักขระ ก็มี เครื่องหมายบวก ตัวเลขอาระบิกห้า ตัวเลขอาระบิคสี่ ตัวเลขอาระบิคสาม ตัวเลขอาระบิคสอง ตัวเลขอาระบิคหนึ่ง

ไวยากรณ์ของ LISP นั้นบ่งบอกไว้ชัดเจนว่า ตัวแรกที่เจอนั้นคือ operator ที่เหลือ คือ operand ที่จะถูกกระทำโดย operator นั้น

ตีความได้แล้ว (ความ ถ้ามันบ่นได้มันคงบ่นมาก เพราะเอะอะ อะไรอะไรก็ ตีความ (พอพอกับกีฬาฟุตบอล ไม่รู้จ้างไปทำไม ขี้เกียจทั้งนั้น พอลูกตั้งตรงมุมสนามทีไร นักเตะไม่ไปเตะหรอก ดันให้เป็น ลูก เตะมุม ไปซะงั้น ตัวนักเตะเลยต้องมีลูกก่อนเป็นนักเตะอาชีพด้วยรึเปล่า ฮึ) ความ คงโดนตีจนน่วม) ก็คือ เอา 5,4,3,2,1 มาบวกกันให้หมดนั่นแหละ

ชักปวดหัวมากขึ้นแฮะ ขอพักก่อน เนี่ย ตื่นมาตั้งแต่ตีสาม

อ้อ ยังไงถ้าอยากลองก็เรียกง่ายๆน่ะ

% clisp
> (+ 5 4 3 2 1)
15
> (quit)
%

ตัวหนังสือสีแดงๆนั่นแหละ ผลลัพธ์

Tuesday, April 12, 2011

gnupot โปรแกรมเอนกประสงค์ และ ฟรี

ผับที่แวะเวียนเข้าไป ยามว่าง
เขียนผ่านไปนานแล้ว จึงมาพบว่า สะกดคำผิดไป gnuplot ดันเขียนเป็น gnupot เออหนอ คนเราก็ยังงี้แหละ บอกแล้วไงว่า เขียนเอง อ่านเอง ตรวจเอง ยากที่จะหาที่ผิดพลาดเจอได้ง่ายๆ

ไม่เปลี่ยนมันหรอก ชื่อเรื่องน่ะ มาบอกกันในนี้เลยดีกว่า  บางที imperfect มันก็ make beauty ได้น่ะ

ไม่แก้ แต่ ขออภัยในความผิดพลาดครั้งนี้ด้วย แม้จะช้าไป ก็ ขออภัยด้วยครับ

๔ สิงหาคม ๒๕๕๔
๑๘.๐๐ นาฬิกาโดยประมาณ 

freshports เป็นหน้าเว้ป ที่ มะไฟ แวะเวียนเข้าไปดูอย่างสม่ำเสมอ เวลาว่างที่ ไม่มีอะไรทำ หรือ ยามมีปัญหา freshports ก็เป็นหนึ่งในที่ที่หาทางแก้ได้

เมื่อวานนี้ แวะเข้าไปเจอ maxima ให้สงสัยว่ามันคืออะไร
เพราะเห็นว่า FreeBSD ports เขายังมีระบบพีชคณิตให้อยู่ ซึ่งพีชคณิตนี้ เป้นการเรียนการสอนในระดับมัธยมศึกษาเท่านั้นเอง แม้ในระดับอุดมศึกษาจะมี ก็แต่ชั้นสูงเท่านั้นหรอก และมีไม่กี่แห่งด้วย จึงให้สงสัย

ผิวนอกของ maxima
maxima เป็น ระบบการเรียนรู้พีชคณิต ด้วยคอมพิวเตอร์ สามารถ สอน พล้อตกราฟ ให้การนำเสนอได้ดี ดีมากเป็นที่เข้าใจของนักเรียนได้ ก็แล้วกัน และเมื่อเข้าไปดูรายละเอียดของเว้ปไซต์ แล้ว ตามไปดู screenshot เข้าอีกที ก็พบว่า หลายสิ่ง หลายอย่างเหลือเกิน ในเรื่องของ การพล้อตกราฟ นั้น gnuplot เป็นพระเอกจริงๆเพราะแม้ชื่อโปรแกรมที่เรียกใช้งานจะมีชื่อที่ผิดแผกแตกต่างกันไป แต่ตัวเนื้อใน หรือตัว แก่นของงาน จริงๆแล้วคือ gnuplot นั่นเอง

moebius curve ด้วย maxima
นอกเหนือไปจากนี้ ตัวที่ดำเนินงานของงาน ก็คือ clisp ซึ่งถ้าท่าน อืมม พี่พี่ซิ ยังงงงๆอยู่ว่ามันคืออะไร ก็ลองตัดตัว c ที่หมายถึง common หน้าคำ clisp ออก มันยิ่งทำให้มึนงงงไปกันใหญ่ เพราะเหลือเพียง LISP

แล้วอะไรคือ LISP อันนี้หากพิจารณาให้ดีจะพบสัจจธรรมด้วยตนเองเข้าจริงๆ เรียกว่า เป็น ปัจจัตตัง กล่าวคือ หากเราลำดับญาติ ของเราท่านขึ้นๆไป ทั้งสายคุณแม่ และสายคุณพ่อ ก็จะเห้น ลำดับของบุคคล ที่ประกอบกันขึ้นมาเป็นสาแหรกเครือญาติ อืมม น่าจะใช้คำผิดน่ะ แต่เอาเถอะ ไม่ใช่นักภาษา เอาเป้นว่า ได้ ลำดับเครือญาติ list of parents

อีกที อีกตัวอย่าง ถ้าเรามองลำดับเหตุการณ์ที่เกิดขึ้นกับตัวเราเอง แต่ละคน แต่ละคนไป (อันนี้ถ้าจะเขียนแบบมี ไม้ยมก คงต้องเขียนเป็น (แต่ละคน)ๆไป เน้าะ เพราะถ้าเขียน แต่ละคนๆไป ก็จะกลายเป็น แต่ละคนคนไป ซึ่งไม่ใช่สิ่งที่อยากเขียนออกมา) ก็พอมองออก เพราะง่ายดี ก็เรื่องของเรานี่หว่า แต่นั่นแหละ นั่นคือ ลำดับเหตุการณ์ list of events

อีกสักหนึ่งตัวอย่างของ LISP ถ้าไม่รู้จะเอาอะไรมาดี ก็ให้นึกถึงตัวเลขสองตัวท้ายรางวัลที่ออกทุกงวด สัก ๕ งวดสุดท้าย ของแต่ละปี ไล่ย้อนหลังไป ๗ ปีท้ายสุด แล้วเลือกมาสัก ปีหนึ่งก็แล้วกัน มันไม่มีอะไรเลย นอกจาก ลำดับของตัวเลข list of two digits

lists ทั้งหลายเหล่านี้ ถ้าเรานำมันมาประมวลผลเข้า หรือนำมา process เข้า ด้วยกฏเกณฑ์ที่ตั้งขึ้นมา ก็ทำให้ได้ผลลัพธ์ของการประมวลผล lists ต่างๆเหล่านั้น

แก่นของเรื่องราว gnuplot และ lisp
การประมวลผล lists ต่างๆเหล่านี้แหละ เรียกรวมๆว่า lists processing ที่คนเมื่อหลายปีก่อนเขียนย่อๆว่า LISP ซึ่งก็คือ LISt Processing หรือ LISP ในภาษา คอมพิวเตอร์ อีก ๑ ภาษา ที่ท่านต้องปวดหัวกับวงเล็บ ที่ยกตัวอย่างมาในนี้นั่นแหล อิอิ เอ้ย คริคริ

แบบจำลอง การเดินเครื่องปฏิกรณ์นิวเคลียร์  ที่ยกตัวอย่างมา รวมทั้งระบบผู้เชี่ยวชาญ ก็เขียนด้วย LISP นี่แหละน่อ

เรากลับมาที่ gnuplot กันอีกที ในคราวที่ได้รับคำสั่งให้เขียนโปรแกรมเคลื่อนที่ ๑ มิติ และแสดงผลออกมานั้น การแสดงผลด้วยกราฟ หากจะเขียนขึ่นมาเองอีกต่างหากเป็นกรณีจำเพาะ ก็ย่อมได้ แต่ข้อดีของ UNIX คือมี tools มากมายให้ใช้ เมื่อเป้นเช่นนี้ การทำซ้ำ จึงเป็นการสิ้นเปลืองอย่างยิ่ง  ในคราวนั้น ก็เลือกวิธีนี้มาแก้ปัญหา แม้จะดูไม่ถูกอก ไม่ถูกใจใครบางคน แต่ แก้ปัญหาได้ และ ประหยัดตังด้วย  โดยเลือกใช้ gnuplot มาเขียนกราฟของผลลัพธ์ แทนที่จะเขียนโปรแกรมขึ้นมา plot กราฟผลลัพธ์ อย่างที่เห่อๆทำกัน

เอกสารชิ้นนี้ ต้องการ เน้น ให้ทราบถึงการเลือกใช้วิธีแก้ปัญหา หากมีวิธีอยู่แล้ว ไม่ต้องสร้างขึ้นมาใหม่ gnuplot  สามารถเขียนกราฟได้ทุกรูปแบบ และโปรแกรมนี้เป็นฟรีโปรแกรม ฟรีขนาดว่า ยักษ์ใหญ่อย่าง IBM ยังนำมาเขียนถึง และใช้ด้วย แล้วทำไมเราๆท่านๆที่ เคยจน และยังจนอยู่ จะไม่ใช้

โดยเฉพาะอย่างยิ่ง หน่วยงานราชการที่ต้องการประหยัดงบประมาณ นักเรียน นักศึกษา นิสิตปริญญาตรี โท เอก ทั้งหลาย อิอิ เอ้ย คริคริ แหม เขียนไม่ถูกสมัยนิยมอยู่เรื่อย สมควรที่จะใช้น่ะ
 โดยเฉพาะอาจารย์ทั้งหลาย ที่ชอบใช้ software ราคาแพงนั่นแหละ คุณแม่ คุณพ่อ ของลูกศิษย์ท่าน จะเอาตังจากไหนมาซื้อ software ที่ใช้งานแค่สามเดือนก็โยนทิ้งไป

View My Stats