เขียน Clojure ไปเรียก Kotlin อีกที

wordcut-clj เป็นโปรแกรมตัดตำที่เขียนด้วย Clojure ผมอยากจะเปลี่ยนจากใช้ sorted list ไปใช้ prefix-tree ที่เขียนด้วย Kotlin แทน

ขั้นแรกผมเอา prefixtree ไปใส่ใน Clojars ก่อนเลยจะได้เรียกมากใช้ง่าย ๆ เพิ่งทราบว่า push ด้วย Maven ก็ได้

แล้วก็เรียกมาใช้ผ่านทาง dep ปกติ

ใน Clojure ก็ import เข้ามาได้เหมือนเขียนด้วย Java เลย

(import net.veerkesto.PrefixTree)

แต่ว่าก็จะมีส่วนที่งง ๆ หน่อยคือ Pair ในเอกสารของ Kotlin บอกว่าอยู่ใน stdlib.kotlin แต่พอพยายามโหลดใช้ไม่ได้เป็น kotlin.Pair ได้เลย

(import kotlin.Pair)

ตอนเรียกใช้ data class ใน Kotlin ผมก็มั่ว ๆ เอาเวลาจะดึง childId ก็สั่งแบบนี้

(.getChildId child)

แต่พอพยายามจะ (.getIsFinal child) มันทำไม่ได้ พบว่าใช้

(.isFinal child)

แบบนี้ได้เลย ที่เหลือก็ตรง ๆ เหมือนเรียก Java ทั้งหมด ดู code เต็ม ๆ ได้ที่ gitlab ครับ

ตัดข้อความประมาณ 20MB ก็ใช้เวลาพอ ๆ กับ Python คือประมาณ 1 นาที 5-7 วินาที ซึ่งเร็วกว่า Python อยู่สัก 1-2 วินาที แน่นอนว่าช้ากว่าใช้ Rust มาก

Advertisements
Posted in ไม่มีหมวดหมู่

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s