我正在嘗試創建一個Haskell程序,它可以畫出一些簡單的2D圖形,但是當您將鼠標懸停在每個圖形上時,它將打印創建形狀的源代碼行。在Haskell中查找函數的行號
爲了做到這一點,我希望能夠創建具有尺寸參數和表示行號的最終參數的形狀。是這樣的:
rect1 = Shape(Rectangle 2 2 lineNumber)
這將產生寬度爲2個像素,高度2個像素的矩形,並使用一個函數行號來存儲這段代碼被寫就行了。 Haskell中是否存在這樣的函數?創建一個簡單嗎?
我已經搜索堆棧溢出並找到this question回答者建議可以使用C++中的__LINE__編譯指示來達到類似的效果。這是最好的方式去實現它還是有一種方法可以在純Haskell中實現?
'__LINE__'在技術上是不是編譯,這是一個預處理器定義。另外,預處理器實際上與C++沒有關係(它只是C++源代碼文件在編譯前預處理的兼容性),它們可以處理任何文本文件。 –
我認爲在沒有深入研究一些GHC內部構件的情況下,單單在haskell中做這件事將會非常困難。也許使用一些獨立的預處理器。 –
如果你的Haskell實現支持,打開CPP。 – augustss