ตัวแปรอะไรถูกใช้ไปแล้วใน Mathematica ?

พอดีมีคนถามมาว่าจะดูว่ามีตัวแปรอะไรประกาศใช้ไปแล้วบ้างอย่างไร

ตัวแปรแบบ Global ตามปกติแล้วเราเรียกดูได้ว่ามันมีการประกาศใช้ตัวแปรอะไรบ้างไปแล้วได้ด้วยคำสั่ง
Names[“Global`*”]
และถ้าจะดูว่าเป็นตัวแปรประเภทไหน ก็ลองแบบนี้ได้ครับ
Head/@ToExpression/@Names[“Global`*”]

แต่ถ้าจะให้ลงในรายละเอียดว่าสนใจเฉพาะตัวแปรที่ประกาศใช้ด้วยเครื่องหมายเท่ากับ เช่นมีการใช้ตัวแปร x และ i ตามนี้

x=Table[i^2,{i,0,10}];

คือจะสนใจแค่ x อย่างเดียว ไม่สนใจ i อย่างนี้ก็อาจจะเขียน function เพื่อที่จะหาตัวแปรอย่าง x ได้เช่น

isVar[varname_String]:= {} =!= ToExpression[varname, InputForm, OwnValues]

เพื่อดูว่าตัวแปรนั้นกำหนดค่าเป็นแบบไหนเพราะถ้าเป็นตัวแปร i อย่างที่ผมยกตัวอย่างมา isVar จะ return ค่า False และ True สำหรับ x

ดังนั้นเราจะเลือกตัวแปรที่ได้จาก Names[“Global`*”] ที่เป็นแบบ x  หรือเฉพาะที่มีการให้ค่ามาแล้วได้โดย

Select[Names[“Global`*”], isVar]

และถ้าต้องการดูว่าเป็นตัวแปรประเภทไหน ก็พิมพ์

Head/@ToExpression/@Select[Names[“Global`*”], isVar]

คงพอช่วยได้บ้างนะครับ